如果 Access 与 MySQL 数据库服务器断开连接,如何刷新链接表?

Posted

技术标签:

【中文标题】如果 Access 与 MySQL 数据库服务器断开连接,如何刷新链接表?【英文标题】:How to refresh linked tables if Access disconnects from MySQL database server? 【发布时间】:2015-06-05 06:30:06 【问题描述】:

所以,我需要一种方法来刷新我的 Access 数据库中的链接表,这样如果 Internet 因某种原因断开连接,发送查询时 ODBC 不会出错,只需刷新以查看查询是否可以再次发送。但是,当 Internet 恢复时,Access 数据库由于某种原因没有重新连接。如果发生这种情况,是否有办法在 VBA 中刷新链接表?

【问题讨论】:

【参考方案1】:

.RefreshLink 方法会做你想做的事吗?

这里有一个例子:https://msdn.microsoft.com/en-us/library/office/ff198349.aspx

另一种解决方案是重新连接到调用此函数的远程数据库。

Function ConnectODBC(ByVal strDsn As String, ByVal strDatabase As String, ByVal strUserName As String, ByVal strPassword As String)

    Dim qdf As DAO.QueryDef
    Dim rst As DAO.Recordset
    Dim strConnection As String

    strConnection = "ODBC;DSN=" & strDsn & ";" & _
                    "DATABASE=" & strDatabase & ";" & _
                    "UID=" & strUserName & ";" & _
                    "PWD=" & strPassword

    Set qdf = CurrentDb.CreateQueryDef("")

    With qdf
        .Connect = strConnection
        .SQL = "SELECT 1;"
    End With

    Set rst = qdf.OpenRecordset(dbOpenSnapshot, dbSQLPassThrough)
    ConnectODBC = True

    Set rst = Nothing
    Set qdf = Nothing

End Function

【讨论】:

我试过了,但我收到错误“ODBC 调用失败”。 已经有答案了:***.com/a/15665509/4510359。看起来像这样:Dim db as Database Set db = Currentdb() db.TablesDefs(1).RefreshLink 是你输入的吗? 我做了:CurrentDb().TableDefs(1).RefreshLink,我收到错误“运行时错误 '3146' ODBC -- 调用失败。” 我用我在一个应用程序上使用的另一种解决方案编辑了我的答案。 从头开始,谢谢您的帮助。我试试看。

以上是关于如果 Access 与 MySQL 数据库服务器断开连接,如何刷新链接表?的主要内容,如果未能解决你的问题,请参考以下文章

数据库程序员教程视频 MySQL/Access/Oracle/Redis/DBA编程设计实战教学

mysql和access的区别是啥?

使用 MS Access 作为 MySQL 数据库的前端

MySQL高级 之 索引失效与优化详解

MySQL高级之索引失效与优化详解

如果不是交互式的,来自 Microsoft Access VBA 的 mySQL 查询会失败吗?