現在我有一個MS SQL數據庫,其中有大約50個左右的表,我希望使用DSN Less連接到MS Access。下面是我有一個stRemoteTableName參數的基本代碼,它是要導入的SQL表的表名。我可以每次爲每張桌子調用這個函數,但這會花費很長時間;無論如何循環遍歷SQL數據庫中的所有表並將它們傳遞給此函數以便導入所有表?我很難在網上查找任何代碼,因此非常感謝幫助。DSN-Less與多個表的連接
Private Sub ImportAllTables(stRemoteTableName)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
stServer = "C:\Location"
stDatabase = "DB"
stLocalTableName = stRemoteTableName
stUsername = ""
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Set td = CurrentDb.CreateTableDef(stLocalTableName, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
Exit Sub
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description
End Sub
您可以爲所有的表名查詢:http://stackoverflow.com/questions/3913620/get-all-table-names-of-a-particular-database-by-sql-query –