2009-07-28 24 views
0

ms-accessデータベースと複数のODBCリンクテーブルがあります。ms-access VBAでテーブルのodbcデータベース名を取得する方法

私はODBCデータベースの2つのセットを持っているので、1つは本番用、もう1つは開発用です。開発と生産の名前はそれぞれ異なります。

VBAを使用してリンクテーブルのodbc情報を取得するにはどうすればよいですか?

+0

どのODBC情報が必要ですか?これは、どのアプローチが最も効率的になるかを決定します。 –

答えて

0

テーブルのローカル名を使用すると、テーブルの外部名のMSysObjectsシステムテーブル(通常は非表示)をクエリできます。

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

外部テーブルの詳細が必要な場合は、同じテーブルの[接続]列を解析するときに手を差してください。

+0

システムテーブルの使用は正式にはサポートされていないため、おそらく安全ではありません。将来のバージョンで変更される可能性があります。私はAccess2007 ACEの.accdbファイルでこれを試してみました。「レコードは読み込めません。読み込み権限は「MSysObjects」です。」 .accdb形式でユーザーレベルのセキュリティが削除されたことを考慮すると、回避策はありますか? – onedaywhen

0

実際、ODBCを使用してAccessデータベースであるかのように.mdbファイルに接続できます。リンクされたテーブルはそのODBC接続に表示され、完全なODBC速度でアクセスできます。

あなたのプログラムはテーブルがリンクテーブルであるかどうかを知る必要はありません。これらのすべてのシステム管理者レベルの詳細を単一の場所に入れることはいいことです。

0

ソースを特定する私の通常の方法は、ネイティブテーブルと同じように、テーブルの名前を変更することです。私はtblTrombone_DEVtblTrombone_PRODのような接尾辞または接頭辞を追加することがあります。

関連する問題