VBAでAccessデータベースを活用しよう~テーブル名&列名取得編~
前回の記事では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
これでイミディエイトウインドウに全てのテーブル名、更新日時、列名、列のデータ型が表示されます。
データ型は以下のサイトが参考になります。
お疲れさまでした。