1
我想创建并在几个类似的数据库运行预定义的查询列表运行查询的序列。如何对Access数据库
的想法是打开数据库,运行查询,然后关闭。 现在我手动创建它们中的每一个,运行并从每个数据库中删除它们。
我不知道该怎么做,在VBA代码。 任何人都可以给我一个关于如何做一个简单的例子一行?
我想创建并在几个类似的数据库运行预定义的查询列表运行查询的序列。如何对Access数据库
的想法是打开数据库,运行查询,然后关闭。 现在我手动创建它们中的每一个,运行并从每个数据库中删除它们。
我不知道该怎么做,在VBA代码。 任何人都可以给我一个关于如何做一个简单的例子一行?
对于数据库的QueryDefs
集合中的每个项目,您可以使用Name
属性来列出已保存的查询。我认为这是解决你问题的标题。但是,就我所知,你问题的主体似乎要求更多。
您可以使用当前数据库中QueryDef
的SQL
属性的文本加载字符串变量。然后使用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
还有很多空间来完善那一个。例如,您应该添加错误处理。但是,尽管很快,但我希望它指出你有用的方向。
我测试了我的系统是这样的,它与我的数据库和查询名称的作品。
Public Sub test_RunQueryOnAnotherDb()
Const cstrQuery As String = "qryTestDelete"
Const cstrRemoteDb As String = "C:\share\Access\0NewScratch.mdb"
RunQueryOnAnotherDb cstrQuery, cstrRemoteDb
End Sub