Sub ConnectToAccess()
Dim conn As Object
Dim dbPath As String
' Accessデータベースのパスを設定
dbPath = ThisWorkbook.Path & "¥Sample.accdb" ' データベースファイル名を指定
' ADOオブジェクトの作成
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";"
' 接続確認
If conn.State = 1 Then
MsgBox "Accessデータベースに接続しました!"
Else
MsgBox "接続に失敗しました。"
End If
' 接続を閉じる
conn.Close
Set conn = Nothing
End Sub
13行目conn.Stateの状態
conn.Stateの値ごとの状態は以下の表にまとめています。
値
定数
状態
0
adStateClosed
接続が閉じています
1
adStateOpen
接続が開いています
2
adStateConnecting
接続中です
4
adStateExecuting
コマンドを実行中です
8
adStateFetching
行が取得中です
コード実行
コードを実行する
接続できました!
SQL文を実行する場合
Sub InsertDataIntoAccess()
Dim conn As Object
Dim rs As Object
Dim dbPath As String
Dim sql As String
' Accessデータベースのパスを設定
dbPath = ThisWorkbook.Path & "¥Sample.accdb" ' データベースファイル名を指定
' ADOオブジェクトの作成
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";"
' データをループしてINSERT文を作成
sql = "INSERT INTO Sample (Name) VALUES ('あいうえ')"
' SQL実行
conn.Execute sql
' 接続を閉じる
conn.Close
Set conn = Nothing
MsgBox "データの挿入が完了しました!"
End Sub
コメント