您是否尝试过保持连接打开?这可能只适用于另一个 accdb 中的链接表,不确定。
不久前我遇到了这个问题,所以只要 Access 正在运行,我现在就保持连接打开,这是我的 sub 的精简版本:
Public Sub updateTables(bClose As Boolean)
Dim dbsCurrent As Database
Dim tdfSingle As TableDef
Dim tdfCollection As TableDefs
Dim sBasePath As String, sPath As String
Set dbsCurrent = CurrentDb
Set tdfCollection = dbsCurrent.TableDefs
Set dbsHold = dbsCurrent
Static dbsOpen As DAO.Database
If bClose Then
dbsOpen.Close
Else
sBasePath = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & "SB-Support\"
sPath = GetUNC(sBasePath & "data.dat")
Set dbsOpen = OpenDatabase(sPath, False, False, "MS Access;")
For Each tdfSingle In tdfCollection
If tdfSingle.SourceTableName <> "" Then
If tdfSingle.Fields.Count = 0 Then
tdfSingle.Connect = ";DATABASE=" & sPath
tdfSingle.RefreshLink
End If
End If
Next
End If
Exit Sub
结束子
我想我最初是从这里检索到的:
http ://www.fmsinc.com/microsoftaccess/performance/linkeddatabase.html
我没有 SQL 服务器要求,但一个快速的谷歌给了我这个用于 SQL 连接的 OpenDatabase:
Dim cs As String
Dim cn As DAO.Database
Dim ws As DAO.Workspace
Set ws = DBEngine.Workspaces(0)
cs = "ODBC;DRIVER=SQL Server;SERVER=Main\SQLEXPRESS;DATABASE=Workwise;APP=Visual Basic" 'UID=Peter;PWD="
Set cn = ws.OpenDatabase("Workwise", dbDriverNoPrompt, True, cs)
http://www.vbforums.com/archive/index.php/t-572723.html