it-swarm-ja.com

ローカルテーブルが別のデータベースのリンクテーブルであるかどうかを確認する

私は、すべてローカルテーブルを備えた無数のAccessデータベースを持っている会社のIT担当者を引き継ぎました。データベースには20個のローカルテーブルがあり、そのうち10個はリンクテーブルとして異なるデータベースにリンクされています。

すべてのAccessデータベースを開かずに、ソーステーブルから別のデータベースにリンクされているかどうか、リンクされている場合はどれにリンクされているかを確認する方法はありますか?

編集->
これはおそらく実行可能な解決策ではないので、このように質問を言います。個々のデータベースを開くと、リンクされているすべてのテーブルと、テーブルがリンクされているソースDBのリストを提供する実行可能なスクリプトはありますか?

1

これを試して:

Public Sub LoopThroughTables()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Set db = CurrentDb
    For Each tdf In db.TableDefs
        ' ignore system and temporary tables
        If Not (tdf.Name Like "MSys*" Or tdf.Name Like "~*") Then
            Debug.Print tdf.Name, tdf.Connect
        End If
    Next
    Set tdf = Nothing
    Set db = Nothing
End Sub

出典: MS Access DB内のすべてのテーブルをループする方法tdf.Connectを追加)

上記のコードは、各テーブルの名前とそのテーブルの接続文字列を一覧表示します。ローカルテーブルの場合、接続文字列は空白になります。

これは、「LocalTable」という名前のローカルテーブルと「LinkedTable」という名前のリンクされたテーブル(Excelファイルにリンクされている)が1つあるAccessDBからの出力例です。

LinkedTable   Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=C:\Temp\temp.xlsx
LocalTable
1
MJH