我有一个mdb,它曾经包含一堆链接表。这些链接指向另一个Access mdb中的表。
作为受控迁移的一部分,我将这些链接表更改为指向SQL服务器实例,方法是迭代所有链接表并将连接字符串更新为ODBC,然后在tabledef上调用RefreshLink。 / p>
但是,在使用ODBC链接打开我的新数据库时,Access会崩溃。更有趣的是,如果我删除一个特定的链接表(通过ADO),我就可以打开数据库。更有趣的是,如果我通过Access GUI重新添加链接表,它不会崩溃,所以我知道SQL Server中的表本身并不是问题。
因此,我需要弄清楚导致Access崩溃的特定链接表是什么。我可以获得有关崩溃的任何信息吗?我哪里可以开始调查这个?
编辑:我尝试了多种刷新链接表的方法,可以通过刷新链接,也可以使用DSN或不使用DSN等来删除和重新创建表。每次都是导致mdb崩溃的同一个表在开幕式上。
编辑2:可悲的是,似乎崩溃实际上在某种程度上是源代码控制 - 如果我禁用我的SCCAPI提供程序,那么就不会崩溃。我仍然不知道如何调查此事。
答案 0 :(得分:0)
删除链接并创建全新的链接。即使ODBC链接最初是以ODBC链接开头,也无法可靠地刷新它们。
答案 1 :(得分:0)
没有链接表的策略改变了结果,因为同一个表,我们仍会在同一个数据库中遇到相同的崩溃。
然而,禁用源代码控制修复了问题,没有人提出可能的原因,也没有提出调查方法,因此我接受“禁用SCC”作为答案来结束这个问题。
答案 2 :(得分:0)
尽管我写的是ADO连接而不是ODBC,但我在Access数据库中经常使用MySQL链接表。
但是最近我在一个新项目中链接到一个新数据库-一个Web后端MySQL-链接很好-测试连接很好-但是1个特定的表链接很好但是尝试打开它-MS Access被立即删除了-我在使用ODBC链接的任何数据库中都从未见过。 ODBC链接的优点在于它使用DAO而不是ADO,并且您可以将表视为本地表-甚至可以使该特定表上的ADO都不会出错-但不会提供错误代码来提供帮助。
解决了该问题-该表具有2个JSON类型的字段(实际上仅是长文本),但是Access被杀死-即使使用最新的驱动程序8.0
幸运的是,我正在与Web开发人员联系,这是一个定制的数据库,但是未使用JSON字段-因此他将它们转换为Long Text-瞧-MS Access再次非常高兴。
尽管我尚未解决的烦人的事情是链接表将内容显示为#DELETED#-并且必须填充F5刷新-尽管在驱动程序8.0中无法正常工作。
但是,ADO很高兴,并且复制和粘贴链接作为本地表可以完美地工作。