2012-06-06 99 views
0

我已通過Oracle ODBC在Access 2007中導入了一個表。我的問題是,有時表中會更改Oracle中的結構(例如添加新列),並且發生這種情況時,Access不會自動獲取其鏈接表中的更改。 相反,它繼續使用舊的結構,甚至更糟的是一些行根本不會出現在Access查詢中(我不知道爲什麼?)。訪問:當鏈接表源更改結構時通知?

另一個問題是我沒有任何對Oracle數據庫的控制權,所以這些更改可能隨時發生。手動更新鏈接表總是太麻煩。是否有可能以某種方式將Access設置爲通知我所做的更改?我的意思是,Access必須能夠告訴事情已經發生了變化 - 問題在於;它能告訴我嗎?

問候, 約翰

+1

您是否嘗試過通過迭代VBA中的表和刷新鏈接?我不完全確定,但我認爲它會起作用。代碼可以在Access打開時運行。 – Fionnuala

回答

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 
+0

爲什麼重置連接?你確定這是必要的嗎? – Fionnuala

+1

@Remou偏執狂?我想連接字符串可以省略,但如果鏈接數據庫的位置移動,它也可以重建 – SeanC