ACCESSのテーブル一覧を取得しよう!

パソコン

Accessにたくさんテーブルある場合、テーブル一覧を取得したい時があります。
今回はVBAでの取得になります。SQLで取得する方法もあります。
VBAになれるためにも今回はVBAでの紹介となります。

ACCESSでVBAを実行するための参照設定

「参照設定」の「Microsoft Office 16.0 Access database engine Object Library」にチェックされているか確認します。チェックがなければ、チェックをいれます。

<確認手順>

VBAエディタのメニューで確認します。

「ツール」→「参照設定」→「Microsoft Office 16.0 Access database engine Object Library」

ACCESS VBAをコーディング

次に、Table一覧を取得するVBAを記述します。

「挿入」ー「標準モジュール」を選択します。

下記のように、DAOのデータベースを使ってテーブル名を取得します。

「テーブル名の取得」のサンプルコード

Sub テーブル名の取得()
    Dim mymydb As DAO.Database
    
    Set mydb = CurrentDb
    
    Debug.Print "すべてのテーブル名を出力します"
    For Each mytbl In mydb.TableDefs
        Debug.Print mytbl.Name
    Next
End Sub

テーブル名とフィールド名を取得するためのサンプルコード

Sub テーブル名とフィールド名の取得()
   
    Dim DB As DAO.Database
    Dim Tableloop As DAO.TableDef
    Dim Fld As DAO.Field
    Dim strTablename As String
    Dim Tdf As DAO.TableDef
     
    Set DB = CurrentDb
    
    For Each Tableloop In DB.TableDefs
     
      strTablename = Tableloop.Name
 
      If Left(strTablename, 2) <> "MS" Then
     
          Set Tdf = DB.TableDefs(strTablename)
          Debug.Print "テーブル名: " & strTablename
          For Each Fld In Tdf.Fields
            Debug.Print Fld.Name        'フィールド名
          Next Fld
        
       End If
    
    Next Tableloop
    
    DB.Close
    Set DB = Nothing
End Sub

VBAを実行し、結果を表示するウィンドウズを表示

VBAを実行する前に、結果を表示するためのイミディエイトウィンドウを表示します。
Debug.Printの命令文をかくことで、イミディエイトウィンドウに結果を表示します。

VBAを実行

カーソルを記述したVBAに置き、実行ボタンからVBAを実行します。
イミディエイトウィンドウにテーブル名が表示していると思います。

わかりやすい参考書

Access VBA 実践マスターガイド~仕事の現場で即使える
Access VBA 実践マスターガイド~仕事の現場で即使える

コメント

タイトルとURLをコピーしました