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のテーブル名やカラム名に注意
スペースや日本語を使っている場合は[...]で囲む必要があります。
