现在我有一个 MS SQL 数据库,其中包含大约 50 个左右的表,我想使用 DSN Less 连接链接到 MS Access。下面是基本代码,其中我有一个参数 stRemoteTableName,它是要导入的 SQL 表的表名。我可以每次为每张桌子调用这个函数,但这需要很长时间;是否有循环遍历 SQL 数据库中的所有表并将它们传递给该函数以便导入所有表?我很难在网上找到这样的代码,所以非常感谢帮助。
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