ほげーむわーく

宿題をゲームのように楽しむブログ

VBAでAccessデータベースを活用しよう~テーブル名&列名取得編~

f:id:takehito33711:20181217190738p:plain

前回の記事ではVBAを使ってデータベースであるAccessに接続を行いました。

今回は接続したデータベースのテーブル名の取得と、列名の取得を行っていきたいと思います。

テーブル名と列名がわからないとデータの取得、更新、削除等ができないので、これからデータベースを活用される方は必須の内容です。

お手持ちのPCにAccessがインストールされている方はAccessを開いてすぐ確認できますが、
僕みたいにAccessがインストールされていない人はこの記事を読んでいただければ確認できる内容になっています。

それでは行ってみましょう!

参考サイト:
テーブル名、クエリ名の取得(ADOX) | ExcelWork.info

★準備

まず前回に引き続き、今回は新たに参照設定が必要になります。

[ツール]→[参照設定]からMicrosoft ADO Ext.6.0 for DDL and Securityをチェックし、OKを押してください。

これで準備完了です。

★列名、テーブル名取得のコード

データベース内にある全てのテーブル名、更新日時、列名、列のデータ型イミディエイトウインドウに表示させるコードです。

「*****」の部分は前回と同様、ファイルの絶対パスを入力してください。


Public Sub テーブル名取得()

Dim CAT As ADOX.Catalog
Dim TB As ADOX.Table
Dim CLM As Column
Dim DBFile As String
Dim strDB
    
Set CAT = New ADOX.Catalog
    
DBFile = "*****"
strDB = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile
    
CAT.ActiveConnection = strDB
    
For Each TB In CAT.Tables
        
If TB.Type = "TABLE" Then
Debug.Print TB.Name, TB.DateCreated
        
 For Each CLM In CAT.Tables(TB.Name).Columns
 Debug.Print CLM.Name, CLM.Type
 Next CLM
            
End If
        
Next TB
    
Set CAT = Nothing

End Sub

これでイミディエイトウインドウに全てのテーブル名、更新日時、列名、列のデータ型が表示されます。

データ型は以下のサイトが参考になります。

Type プロパティ (ADO)


お疲れさまでした。