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

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

【问题讨论】:

    标签: mysql vba ms-access odbc


    【解决方案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 调用失败”。
    • 已经有答案了:stackoverflow.com/a/15665509/4510359。看起来像这样:Dim db as Database Set db = Currentdb() db.TablesDefs(1).RefreshLink 是你输入的吗?
    • 我做了:CurrentDb().TableDefs(1).RefreshLink,我收到错误“运行时错误 '3146' ODBC -- 调用失败。”
    • 我用我在一个应用程序上使用的另一种解决方案编辑了我的答案。
    • 从头开始,谢谢您的帮助。我试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多