• 締切済み

Oracleのテーブルに対して書込みができない

お世話になります。 DBをSQLServerからOracleに切り替えると、読み出しはできるのですが追加・更新ができなくなりました。どこが間違っているのかわからずお手上げ状態です。 ソースを貼り付けますので、教えていただけないでしょうか? Private Const SRC_SQL = "Provider=MSDAORA;Data Source=XXXX;User ID=XXXX; Password=XXXX;" Private Const TBL_A = "XXXX.TABLE_A" Sub DATA_UPD() Dim ws As Excel.Worksheet Dim A_cd As String Dim B_cd As String Set ws = ThisWorkbook.Worksheets("シート") Set cn = CreateObject("ADODB.Connection") cn.CommandTimeout = 0 cn.Open SRC_SQL strSQL = "SELECT A.* FROM " & TBL_A & " A" strSQL = strSQL & "WHERE A.行番 is not null" Set rs = CreateObject("ADODB.Recordset") rs.Open strSQL, cn, adOpenDynamic, adLockOptimistic With rs .MoveFirst Do While .EOF = False '↓★★★このステップで止まる★★★ .Fields("担当者A").Value = ws.Range("Aの担当者") .Fields("担当者B").Value = ws.Range("Bの担当者") .update .MoveNext Loop End With Set rs = Nothing End Sub エラーメッセージは、 実行時エラー '3251': 現在の Recordset は更新をサポートしていません。プロバイダか、選択されたロックタイプの限界の可能性があります。 不明な点があれば補足欄にて追記させていただきますので、 皆様どうぞよろしくお願いします。

みんなの回答

  • neko3839
  • ベストアンサー率37% (100/269)
回答No.1

同様の事例が下記にあります。 御参考まで ↓

参考URL:
http://homepage1.nifty.com/MADIA/vb/vb_bbs/200306_03060019.html
motsu2006
質問者

お礼

お礼・締め切りが大変遅くなり申し訳ございませんでした。 ここでの質問意外でもあれこれ探していた上、もう少し粘れば他の回答もいただけるかな、と思い……。 具体的な解決策はまだ見出せていませんが、原因はほぼ特定できました。 ありがとうございました。

関連するQ&A