我想在几个类似的数据库上创建并运行预定义查询列表。
这个想法是打开数据库,运行查询,然后关闭。 现在我手动创建它们,运行然后从每个数据库中删除它们。
我不知道如何在VBA代码中执行此操作。 有人可以用一个简单的例子告诉我如何做到这一点吗?
答案 0 :(得分:3)
您可以使用数据库Name
集合中每个项目的QueryDefs
属性来制作已保存查询的列表。我认为这解决了你问题的标题。然而,就我所知,你问题的主体似乎要求更多。
您可以使用当前数据库中SQL
的{{1}}属性中的文本加载字符串变量。然后使用QueryDef
方法打开另一个db文件,并在那里使用OpenDatabase
字符串。
Execute
有足够的空间来完善那一个。例如,您应该添加错误处理。但是,虽然快速&肮脏,我希望它能指出你有用的方向。
我在我的系统上测试了它,它适用于我的数据库和查询名称。
Public Sub RunQueryOnAnotherDb(ByVal pQuery As String, _
ByVal pRemoteDb As String)
Dim dbRemote As DAO.Database
Dim strSql As String
strSql = CurrentDb.QueryDefs(pQuery).SQL
'Debug.Print strSql
Set dbRemote = OpenDatabase(pRemoteDb)
dbRemote.Execute strSql, dbFailOnError
Debug.Print "RecordsAffected: " & dbRemote.RecordsAffected
dbRemote.Close
Set dbRemote = Nothing
End Sub