Excel VBAからADO(ActiveX Data Objects)を使用して、Microsoft Accessのデータベースに接続するには、以下の手順で実装できます。
目次
✅ 事前準備
- 参照設定を追加
- Excel VBAエディタで
Alt + F11
を押してVBAエディタを開きます。 - メニューの「ツール」→「参照設定」で「Microsoft ActiveX Data Objects x.x Library」にチェックを入れます(通常は「6.1」または「2.8」など)。
- Excel VBAエディタで
📌 VBAコード例(ACCDB形式のAccess)
Sub ConnectToAccessDB() Dim conn As ADODB.Connection Dim rs As ADODB.Recordset Dim dbPath As String Dim sql As String ' Accessファイルのパス dbPath = "C:\YourPath\YourDatabase.accdb" ' 接続の初期化 Set conn = New ADODB.Connection conn.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & dbPath & ";" & _ "Persist Security Info=False;" ' 接続を開く conn.Open ' SQL文(例:テーブルからすべてのレコードを取得) sql = "SELECT * FROM YourTableName" Set rs = New ADODB.Recordset rs.Open sql, conn, adOpenStatic, adLockReadOnly ' データの表示例:イミディエイトに1行目のフィールド名と値を出力 If Not rs.EOF Then Debug.Print rs.Fields(0).Name & ": " & rs.Fields(0).Value End If ' 終了処理 rs.Close conn.Close Set rs = Nothing Set conn = Nothing MsgBox "接続完了" End Sub
🔄 MDB形式(古いAccessファイル)の接続文字列
conn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & dbPath & ";" & _ "Persist Security Info=False;"
🛠 よくある注意点
- 「Microsoft.ACE.OLEDB.12.0」が見つからない場合
→ Officeが64bit/32bitの違いでドライバがない可能性あり。下記リンクからAccess Database Engineをインストール。
Microsoft Access Database Engine 2010 Redistributable - SQLのテーブル名やカラム名に注意
スペースや日本語を使っている場合は[...]
で囲む必要があります。