• ベストアンサー

EXCEL_VBAでOracleにADO接続してSQL文で追加/更新したい

EXCELで入力した値をADO接続して SQL文で登録したいのですが 誰かサンプルソース 作成していただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • pppc88
  • ベストアンサー率43% (40/93)
回答No.1

手抜きのような気もしますが… Oracle OLACLEDBデータベースのSCOTTスキーマに「テスト」テーブルがある物とします。 NAME VARCHAR2 KOE VARCHAR2 Excelでは、ツール-参照設定で"Microsoft ActiveX Data Objects 2.0 Library"を参照します。 Module1を作成して、 ↓ここから Option Explicit ' ADOのオブジェクト変数を宣言 Private cnn As New ADODB.Connection Private cmd As New ADODB.Command Private Sub sTest() On Error GoTo err_hdr ' Oracleの接続 cnn.Open "Provider=MSDAORA;" & _ "Data Source=ORACLEDB;", "SCOTT", "TIGER" Set cmd.ActiveConnection = cnn '追加の例 With cmd .CommandText = "INSERT INTO テスト" _ & " (NAME , KOE)" _ & " VALUES ( '" & "ねこ" & "'" _ & " , '" & "にゃん" & "')" .CommandType = adCmdUnknown .Execute End With '更新の例 With cmd .CommandText = "UPDATE テスト" _ & " SET テスト.NAME='" & "ねこ" & "'" _ & " , テスト.KOE='" & "にゃお~ん" & "'" _ & " WHERE " _ & " テスト.NAME='" & "ねこ" & "'" _ & " AND テスト.KOE='" & "にゃん" & "'" .CommandType = adCmdUnknown .Execute End With '削除の例 With cmd .CommandText = "DELETE FROM テスト" _ & " WHERE " _ & " テスト.NAME='" & "ねこ" & "'" _ & " AND テスト.KOE='" & "にゃお~ん" & "'" .CommandType = adCmdUnknown .Execute End With cnn.Close Set cmd = Nothing Set cnn = Nothing Exit Sub err_hdr: Resume Next End Sub ↑ここまで 「ねこ」とかの代わりにExcelシート上のセルからデータを取得して セットするように改造下さればなんとかなるかと思います。

mt1227
質問者

お礼

大変参考になりました ありがとうございます。 例文で問題なくOKです。