Excel VBAからAccessデータベースに接続する基本コードと実行例 ~DAOを使用して.accdbファイルへ接続し確認メッセージを表示する方法~

Access形式のデータベース(.accdb)に対して、Excel VBAから直接接続して操作するには、DAO(Data Access Objects)を使用するのが一般的です。
この方法により、VBAでAccess内のテーブルやクエリを参照したり、データを書き込んだりする準備が整います。

この記事では、DAOを使ってAccessのデータベースに接続する基本的なVBAコードをご紹介します。


目次

前提条件

  • 接続対象は「project_data.accdb」というAccessファイル
  • Excelファイルと同じフォルダ内にこのデータベースファイルが配置されている
  • DAO 12.0(DAO.DBEngine.120)がインストールされている環境であること

VBAコード:Accessデータベースへの接続とバージョン確認

Sub ConnectToAccessDB()
    Dim daoEngine As Object
    Dim accessDB As Object

    ' DAO バージョンの確認
    MsgBox CreateObject("DAO.DBEngine.120").Version, vbInformation, "DAO Version"

    ' エンジンとデータベースの初期化
    Set daoEngine = CreateObject("DAO.DBEngine.120")
    Set accessDB = daoEngine.OpenDatabase(ThisWorkbook.Path & "\project_data.accdb")
    
    ' 接続確認メッセージ
    MsgBox accessDB.Name & " に接続しました", vbInformation, "接続成功"

    ' 後始末
    accessDB.Close
    Set accessDB = Nothing
    Set daoEngine = Nothing
End Sub

実行結果(例)

  • 最初のメッセージボックスで DAO バージョン(例:12.0)が表示されます。
  • 次に「C:\Users…\project_data.accdb に接続しました」と表示されれば成功です。

補足情報

項目内容
CreateObject("DAO.DBEngine.120")DAO エンジンのバージョン 12.0 を指定
.OpenDatabase(...)指定したパスにある .accdb を開く
MsgBox接続確認のための通知用メッセージ表示

よくあるエラーと対策

エラー内容対応方法
コンパイルエラー「ライブラリが見つかりません」参照設定が古い DAO バージョンになっている可能性
実行時エラー「ファイルが見つかりません」ThisWorkbook.Path にファイルが存在するか確認
バージョンが表示されないDAO ランタイムが未インストールまたは破損

まとめ

Excel VBAからAccessデータベースに接続するには、DAOオブジェクトを使う方法がシンプルで確実です。
データの読み書きやクエリ実行など、今後の操作に備えてまずはこの接続処理をしっかり押さえておくことが重要です。

次回はこの接続を利用して、Accessのテーブルからデータを抽出・加工する方法をご紹介します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次