我有一个链接表连接到SQL Server后端。我进入了Access中的链接表选项,并删除了连接,这意味着不再有链接表。但是,当我进入调试控制台并键入?currentproject.Connection
时,将得到与拥有链接表时相同的连接字符串。连接字符串如下所示:
Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Dave\Desktop\COMP\COMPMAIN.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database=C:\Users\Dave\AppData\Roaming\Microsoft\Access\System3.mdw;Jet OLEDB:Registry Path=Software\Microsoft\Office\16.0\Access\Access Connectivity Engine;Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=True;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False
但是,即使当我删除链接表时连接字符串完全相同,像这样的简单代码
Function connection()
Dim rst As New ADODB.Recordset
Dim i As Integer
rst.Open "select * from Customers", CurrentProject.connection
Do While Not rst.EOF
i = i + 1
rst.MoveNext
Loop
Debug.Print i
End Function
链接表时曾经返回124
给我以下错误
Microsoft Access数据库引擎找不到输入表或查询
我很困惑,因为该错误不是说连接无效,而是说找不到表
答案 0 :(得分:1)
currentproject.Connection
中的 .mdb
指向此.mdb
本身。不要链接表!
当您在.mdb
中具有链接表时,您的代码将建立与此.mdb
的连接,并从放置在该表中的链接表引用中提取数据。当您从.mdb
删除链接表时,您的代码会建立与.mdb
的连接,但找不到表(因为已将其删除)。
链接表的连接字符串存储在.Connect
属性中:
CurrentDB.TableDefs("Customers").Connect