我有一个带有SQL Server链接表的Access应用程序,我在几个不同的站点使用,因此SQL服务器名称,有时SQL数据库和odbc连接名称在站点之间不同。但是,他们使用Access Runtime来使用它,因此无法在没有完整版本的情况下重新链接表。我正在努力找到一种方法来捕获任何ODBC连接错误,然后通过键入ODBC连接名称等提供重新链接表的选项,然后重新链接我认为可能的VBA代码。 (例如http://www.access-programmers.co.uk/forums/showthread.php?t=143180)
数据库立即加载到链接表上具有记录源的表单上,因此如果可能,它需要捕获该表单上的错误。我想我可以添加一个带有按钮的主菜单来重新链接那里的表格,但更愿意避免引入一个菜单表格,这需要为用户额外点击。
找到了这些文章但是我无法捕捉到初始的odbc失败,无法在表单的On Error事件中进行连接,并且也尝试了Activate事件。任何建议都将受到高度赞赏!
http://support.microsoft.com/kb/209855
http://www.access-programmers.co.uk/forums/showthread.php?t=198039
答案 0 :(得分:2)
从其中一个链接表中提取连接信息,并尝试使用它打开ADO连接。您可以根据需要调整ConnectionTimeout
属性。
链接的ODBC连接信息可从TableDef.Connect属性获得。
CurrentDb.TableDef("link name").Connect
理想情况下,您可以从该字符串的开头丢弃“ODBC;”,并将其余部分用于ADO连接字符串。但如果你的工作不那么简单,你可以{; 1}}字符串“;”并使用你需要的部分。
我包含了打开ADO连接的代码大纲;你需要改进它。然后你可以从泼溅形式调用它。如果连接成功,请打开主表单。当连接失败时,打开您请求重新链接所需信息的表单。
Split()