ローカル・リンク テーブルの接続情報や、テーブル・クエリ等すべてのオブジェジェクトを取得する事ができます。
2013.10.29
余談にTableDefs(DAO)を追加
リンクテーブルの接続情報
MsysObjectsはシステム テーブルです。取扱に注意が必要です!SELECT Name, Connect, ForeignName画面左側のオブジェクト一覧にあるリンクテーブルは、[Name]カラムにテーブル名が表示されていますが、テーブル オブジェクトを削除する[~TMPCLPxxxxxx](xは数値)に変更されます。
FROM MsysObjects
WHERE Type = 4
変更後も接続情報等はそのまま残っています。
万が一テーブルを削除し接続情報が分からない・・・という時に[MsysObjects]テーブルは役立ちそうです。
なお、[MsysObjects]テーブルを変更しようとすると
このコントロールはレプリケーション システム フィールド’Name’に連絡しているため、編集できません。というエラーが表示されます。
全テーブル名を取得する場合
SELECT Name
FROM MsysObjects
WHERE Type = 1 AND Flags = 0
全レポート名を取得する場合
SELECT Name
FROM MsysObjects
WHERE Type = -32764 AND Flags = 0
全クエリ名を取得する場合
SELECT Name
FROM MsysObjects
WHERE Type = 5 AND Flags = 0
全フォーム名を取得する場合
SELECT Name
FROM MsysObjects
WHERE Type = –32768 AND Flags = 0
全マクロ名を取得する場合
SELECT Name
FROM MsysObjects
WHERE Type = –32764 AND Flags = 0
全モジュール名を取得する場合
SELECT Name
FROM MsysObjects
WHERE Type = -32761 AND Flags = 0
余談:TableDefs(DAO)もありますね
DAO(Data Access Object)にTableDefsコレクションがあり、MsysObjectsのnameプロパティやconnectプロパティと同一の情報が取得できます。Dim tbl AS DAO.TableDefs
For Each tbl In CurrentDb.TableDefs
Debug.Print tbl.Connect
Debug.Print tbl.Name
Next
TableDefs コレクション (DAO)Access Clubさんのテーブルの作成:DAO入門講座にある階層構造を見ればすぐにイメージできます。
テーブルの作成 : DAO入門講座