Sql server Currentproject.connection是否在没有链接表的情况下工作?

Sql server Currentproject.connection是否在没有链接表的情况下工作?,sql-server,vba,ms-access,Sql Server,Vba,Ms Access,我有一个连接到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

我有一个连接到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
然而,即使当我删除链接表时连接字符串是完全相同的,一个简单的代码如下

 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数据库引擎找不到输入表或查询


我很困惑,因为错误没有说连接无效,而是说找不到表。
中的连接
。mdb指向此
。mdb
本身。不要链接到链接表! 当您的
.mdb
中有链接表时,您的代码建立了与该
.mdb
的连接,并从放置在那里的链接表引用中提取数据。当您从
.mdb
中删除链接表时,您的代码将建立到
.mdb
的连接,但找不到该表(因为您已将其删除)

链接表的连接字符串存储在
中。Connect
属性:

CurrentDB.TableDefs("Customers").Connect

尝试压缩和修复以强制MS Access进行清理。