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 実践マスターガイド~仕事の現場で即使える
コメント