Excel VBA Oracleでデータ更新(insert/update/delete)

Excel VBAのOracleのデータを更新するサンプルです。

目次

サンプル insertのサンプル
  updateの場合
  deleteの場合
参考 参照の設定

insertのサンプル

Oracleに接続してインサートを実行するサンプルです。

DBは、Oracle Express 11gの64bitでローカルにあります。Excelも64bitです。
tnsnames.oraが必要なコードです。

Sub test1()
    Dim SQL As String

    Const Provider = "OraOLEDB.Oracle" 'Provider
    Const DATA_SOURCE = "XE"           'Data Source
    Const USER_ID = "hr"               'userid
    Const Password = "hr"              'password

    SQL = "insert into syain(id,name,romaji) VALUES(5,'高橋','takahashi')"
    
    On Error GoTo Exception
        
    Dim conn As New ADODB.Connection
    conn.ConnectionString = _
                    "Provider=" & Provider & ";" & _
                    "Data Source=" & DATA_SOURCE & ";" & _
                    "USER ID=" & USER_ID & ";" & _
                    "Password=" & Password & ";"
    conn.Open
    
    conn.Execute (SQL)

    conn.Close
    Set conn = Nothing
    Exit Sub
    
Exception:
    Set conn = Nothing
    MsgBox Err.Number & vbCrLf & Err.Description
End Sub

5行目は、tnsnames.oraにある値です。
9行目は、SQL文の後ろにセミコロン(;)があるとエラーになるので注意が必要です。
21行目は、SQLを実行します。
例外発生時は、27行目以降が実施されます。

updateの場合

updeteを行う場合は、9行目のSQL文を変更します。

SQL = "update syain Set name='武田',romaji='takeda' where id=5"

deleteの場合

deleteを行う場合は、9行目のSQL文を変更します。

SQL = "delete from syain where id = 5"

参照の設定

DBに接続するには、参照の設定が必要です。

1.「ツール」→「参照設定」をクリックします。

 

2.参照可能なライブラリで「Microsoft ActiveX Data Objects 2.8 Library」にチェックをいれOKを押します。

チェックをしないで実行するとADODB.Connectionの行で
「ユーザ定義型は定義されていません。」のコンパイルエラーが表示されます。

関連の記事

Excel VBA Oracleに接続してselectするサンプル

△上に戻る