
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」メソッド

 
  
  
  
  ![[Windowsの設定]-[アプリ]](https://excel-vba.work/wp-content/uploads/2023/03/vba_sqlserver_insert_001.png)

