• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数条件でoracleデータ更新)

複数条件でoracleデータ更新

このQ&Aのポイント
  • excelのA1にTEST、C1にSERIAL01、F1にKOTEI1のデータが入っていて、oracleのテーブルデータをexcelマクロで更新させようとしています。
  • マクロを実行すると、oracleのTABLE1のデータはSERIAL01に関してKOMOKU1の列がTESTに更新されます。
  • KOMOKU3がSERIAL01、KOMOKU6がKOTEI1のAND条件だった場合に、KOMOKU1を更新させたいのですが、対象のKOMOKU1がデータ更新されません。何が悪いのか修正いただきたく。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

ぱっと見間違いは無さそうに思えます。 私だったら次のように書き、 投げている生のSQL文を確認します。 Option Explicit ぱっと見間違いは無さそうに思えます。 私だったら次のように書き、 投げている生のSQL文を確認します。 Option Explicit Sub aaa()  Dim SQL As String  With ThisWorkbook.ActiveSheet   SQL = ""   SQL = SQL & "UPDATE TABLE1" & vbCrLf   SQL = SQL & "set KOMOKU1 = '" & .Cells(1, 1).Value & "'" & vbCrLf   SQL = SQL & "WHERE" & vbCrLf   SQL = SQL & "((KOMOKU3 = '" & .Cells(1, 3).Value & "')" & vbCrLf   SQL = SQL & "AND" & vbCrLf   SQL = SQL & " (KOMOKU6 = '" & .Cells(1, 6).Value & "'))" & vbCrLf  End With  Debug.Print SQL  '又は  'MsgBox (SQL)  With cmd   .CommandText = SQL   'Debug.Print .CommandText  End With End Sub

3620313
質問者

お礼

参考になりました。ありがとうございます

3620313
質問者

補足

上記aaaを参考にさせていただきやってみましたが、結果は同じで更新されませんでした。 しかしながら、提示いただいた内容はWHEREのあとに(がついています。 これを対応すると更新できました。 With cmd .CommandText = "UPDATE TABLE1  set KOMOKU1 = '" & ActiveSheet.Cells(1, 1) & "' WHERE (KOMOKU3 = '" & ActiveSheet.Cells(1, 3) & "' AND KOMOKU6 = '" & ActiveSheet.Cells(1, 6) & "')" End With