VBAから
・SQL ServerへINSERT文を発行
できます!
前提
・「Microsoft OLE DB Driver for SQL Server」がインストールされていること。
VBAコード
ここでは例として、
・テーブル「employee」へINSERT文を実行
します。
※INSERTされたレコード件数をメッセージボックスに出力します。
※エラー処理もします。
Option Explicit
Sub sample()
'プロバイダ
Const PROVIDER As String = "MSOLEDBSQL"
'サーバー名
Const SERVER_NAME As String = "localhost\SQLEXPRESS"
'DB名
Const DB_NAME As String = "sampleDB"
'ユーザー名
Const USER_NAME As String = "XXXXX"
'パスワード
Const PASSWORD As String = "XXXXX"
Dim sql As String
Dim conStr As String
Dim con As Object
Dim command As Object
Dim rowNum As Long
'INSERT文
sql = "INSERT INTO employee VALUES('00004','太田史郎','男','情シス')"
'接続文字列の組み立て(SQL Server認証)
conStr = "Provider=" & PROVIDER & ";" & _
"Data Source=" & SERVER_NAME & ";" & _
"Initial Catalog=" & DB_NAME & ";" & _
"User ID=" & USER_NAME & ";" & _
"Password=" & PASSWORD & ";"
On Error GoTo Err
'DB接続
Set con = CreateObject("ADODB.Connection")
con.Open conStr
'INSERT文を実行
Set command = CreateObject("ADODB.Command")
With command
.ActiveConnection = con
.CommandText = sql
.Execute rowNum
End With
MsgBox ("登録件数:" & rowNum)
'接続を閉じる
con.Close
Set command = Nothing
Set con = Nothing
Exit Sub
Err:
MsgBox ("エラーが発生しました。" & vbCrLf & vbCrLf & _
Err.Description & vbCrLf), vbCritical
'DB接続していたら閉じる
If con.State = 1 Then
con.Close
End If
Set command = Nothing
Set con = Nothing
End Sub
実行結果
SQL ServerへINSERT文を実行できました。
参考①
SQL ServerへSELECT文の実行もできます。
詳細は以下の記事をご確認ください。
参考②
上記で使用した以下の詳細は、公式サイトをご確認ください。
●「Connectionオブジェクト」の「Open」メソッド
●「Commandオブジェクト」の「ActiveConnection」プロパティ
●「Commandオブジェクト」の「CommandText」プロパティ
●「Commandオブジェクト」の「Execute」メソッド