访问:在链接表源更改结构时通知?

Posted

技术标签:

【中文标题】访问:在链接表源更改结构时通知?【英文标题】:Access: notify when linked table source changes structure? 【发布时间】:2012-06-06 18:25:34 【问题描述】:

我通过 Oracle ODBC 在 Access 2007 中导入了一个表。我的问题是,有时 Oracle 中的表结构会发生变化(例如,添加了新列),而当这种情况发生时,Access 不会自动获取其链接表中的更改。 相反,它继续使用旧结构,更糟糕的是,某些行根本不会出现在 Access 查询中(我不知道为什么?)。

另一个问题是我对 Oracle 数据库没有任何控制权,因此更改可能随时发生。一直手动更新链接表太麻烦了。是否可以以某种方式设置 Access 以通知我更改?我的意思是,Access 必须能够以某种方式告诉某些事情发生了变化——问题是;可以告诉我吗?

问候, 约翰

【问题讨论】:

您是否尝试过遍历 VBA 中的表格并刷新链接?我不完全确定,但我认为它会起作用。代码可以在 Access 打开时运行。 【参考方案1】:

运行此函数 - 您可以将其链接到表单打开事件,或者在需要刷新数据时运行它

Sub relinkTables()
Dim tdf As DAO.TableDef

    For Each tdf In CurrentDb.TableDefs
        ' check if table is a linked table
        If Len(tdf.Connect) > 0 Then
            tdf.Connect = "your odbc connection string to the DSN or database"
            tdf.RefreshLink
        End If
    Next

End Sub

【讨论】:

为什么要重置连接?你确定有必要吗? @Remou 偏执狂?我想 Connect 字符串可以省略,但如果链接数据库的位置移动,它也可以重建

以上是关于访问:在链接表源更改结构时通知?的主要内容,如果未能解决你的问题,请参考以下文章

obiee 找不到逻辑列的逻辑表源覆盖率

如何将 Google Drive 推送通知响应链接到更改的文件

访问链接表管理

在 Java 中接收 eth 链接状态通知的更改(在 Linux 中)

写冲突消息突然在ODBC链接表中发生

如何更改服务器以便多个客户端可以访问服务器中的共享数据?