首页 > 解决方案 > Currentproject.connection 在没有链接表的情况下工作吗?

问题描述

我有一个连接到 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 数据库引擎找不到输入表或查询

我很困惑,因为错误并没有说连接无效,而是说找不到表

标签: sql-servervbams-access

解决方案


currentproject.Connectionin.mdb指出了这一点.mdb。不要链接表!当您的代码中有链接表时,会.mdb建立与此的连接.mdb并从放置在那里的链接表引用中提取数据。当您从代码中删除链接表时,会.mdb建立与表的连接.mdb但找不到表(因为您已将其删除)。

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

CurrentDB.TableDefs("Customers").Connect

推荐阅读