2009-07-28 35 views
0

我有一個ms-access數據庫和其中的多個ODBC鏈接表。由於我有2套ODBC數據庫,一套用於生產,另一套用於開發,它們有不同的名稱開發和生產。如何檢索ms-access VBA中的表的odbc數據庫名稱

如何使用VBA獲取鏈接表的odbc信息?

+0

你需要什麼ODBC信息?這決定了哪種方法將是最有效的。 – 2009-07-28 22:14:43

回答

0

使用表的本地名稱,可以查詢表的外部名稱的MSysObjects系統表(通常隱藏)。

SELECT MSysObjects.ForeignName 
FROM MSysObjects 
WHERE (((MSysObjects.Name)="LocalTableName")); 

如果您需要有關外表的更多信息,請嘗試解析同一個表中的「連接」列。

+0

官方不支持使用系統表,因此可以說是不安全的,例如他們可能會在未來版本中更改。我在Access2007 ACE.accdb文件上試過這個,得到了錯誤,「記錄無法讀取;'MSysObjects'沒有讀取權限。」考慮到.accdb格式的用戶級安全已被刪除,是否有解決方法? – onedaywhen 2009-08-01 14:06:09

0

實際上,您可以使用ODBC連接到.mdb文件,就好像它是Access數據庫一樣。鏈接表將顯示在該ODBC連接中,並且可以以完整的ODBC速度訪問。

這樣做的好處是你的程序甚至不需要知道表是否鏈接表。將所有這些系統管理員級別的詳細信息包含在一個地方很好。

0

我通常的方法來確定源是重命名錶,就像你本地表。我可以添加一個後綴或前綴,如tblTrombone_DEVtblTrombone_PROD

相關問題