【发布时间】:2018-09-27 16:08:47
【问题描述】:
使用以下内容:
- MS Access 2016,Office 365
- SQL Server 2012
我有 100 多个 SQL Server 表和视图通过 ODBC 连接链接到 Access 数据库。所有这些 SQL Server 对象都来自位于同一服务器上的两个 SQL Server 数据库。所有这些连接都已使用 Access 用户界面设置并通过链接表管理器重新链接。
我最近遇到了许多 Access 数据库问题,所以我正在用细齿梳子梳理所有问题。我注意到我所有的 SQL Server 对象的连接字符串有许多不一致的地方(见下文)。就这些对象的创建时间和连接字符串的格式而言,似乎也没有任何模式。
ODBC;DSN=Database1;Description=Database1;Trusted_Connection=Yes;APP=Microsoft Office 2010;
ODBC;DSN=Database1;Description=Database1;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=Database1
ODBC;DSN=Database1;Description=Database1;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=Database1;Network=DBMSSOCN
ODBC;DSN=Database1;Description=Database1;Trusted_Connection=Yes;APP=Microsoft Office 2016;
ODBC;DSN=Database1;Description=Database1;Trusted_Connection=Yes;APP=Microsoft Office 2016;DATABASE=Database1
ODBC;DSN=Database2;Description=Database2;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=Database2
ODBC;DSN=Database2;Description=Database2;Trusted_Connection=Yes;APP=Microsoft Office 2016;DATABASE=Database2
连接字符串有这么多变体是否有问题?我做了一些研究(例如,谷歌搜索),但我在这方面的数据库方面没有太多经验。一些连接指定了“网络”,但其他连接没有。根据 connectionstrings.com (https://www.connectionstrings.com/define-sql-server-network-protocol/),“Network=DBMSSOC”指定了一个 Winsock TCP/IP 连接,我认为这是我的网络设置的合适选择。这个参数从几个连接字符串中排除有问题吗?
【问题讨论】:
-
您是否怀疑这些连接字符串的变化会导致或促成您的 Access 数据库问题?如果是这样,您可以将它们标准化并检查该更改对其他问题的影响。一个简单的 VBA 过程可以管理连接:对于每个链接的
TableDef,设置其Connect属性,然后调用RefreshLink方法。 -
我不确定。该数据库在过去一两个月内反复出现“无法识别的格式”错误……不好!我什么都试过了——编译VBA代码;重新链接所有 ODBC 连接;压缩和修复,然后反编译数据库;第三方分析仪;和我最不喜欢的选项,导入一个空白数据库。问题仍然会定期出现。在这一点上,我正在寻找任何不一致的东西。我有一些其他数据库也有类似问题,但没有一个数据库具有持久性。