Ms access MS Access中发生故障后如何恢复ODBC连接

Ms access MS Access中发生故障后如何恢复ODBC连接,ms-access,odbc,database-connection,vba,reconnect,Ms Access,Odbc,Database Connection,Vba,Reconnect,有一个MS Access应用程序,其中MS SQL Server上的表通过ODBC链接。当连接丢失时,我收到ODBC错误3146。物理恢复连接后,我仍然收到ODBC 3146错误。我必须重新连接到服务器。如何在MS Access中执行此操作?我认为您需要做的就是刷新表链接。您是否在询问如何以编程方式重新链接表?您是否尝试在断开连接后刷新链接,并验证其是否解决了问题?在VBA中刷新链接类似于 Dim db as Database Set db = Currentdb() db.TablesDefs

有一个MS Access应用程序,其中MS SQL Server上的表通过ODBC链接。当连接丢失时,我收到ODBC错误3146。物理恢复连接后,我仍然收到ODBC 3146错误。我必须重新连接到服务器。如何在MS Access中执行此操作?

我认为您需要做的就是刷新表链接。您是否在询问如何以编程方式重新链接表?您是否尝试在断开连接后刷新链接,并验证其是否解决了问题?在VBA中刷新链接类似于

Dim db as Database
Set db = Currentdb()
db.TablesDefs(1).RefreshLink

您可能需要在表中循环以获取索引我不确定它是否会采用表名,但您可以先尝试这种方法。

您的SQL Server访问表在哪里?如果您的访问表是本地的,并且您是唯一使用它的人,那么刷新表链接就足够了。但是,如果Access db位于服务器或其他共享空间中,许多人都在使用它,那么如果您使用的是用户DSN,他们将无法访问SQL表。设置系统DSN或DSN文件将提供访问它正在查找的有关SQL表位置的信息。

谢谢您的回答。是的,这是非常有用的信息,但首先我需要了解如何使用ODBC准确地解决连接问题-是否有任何特殊的应用程序方法,如connection.reconnect或.close then.open。该项目有大约180个链接表,所以刷新每个链接表都需要很多时间。还有其他重新连接的方法吗?为什么有180个链接表?如果有具有类似列的表,如果我是正确的,您可以简单地将这些列与其他表关联。