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の行で
「ユーザ定義型は定義されていません。」のコンパイルエラーが表示されます。
関連の記事