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