Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


28 / 13182 ツリー ←次へ | 前へ→

【80079】ADODB.Recordsetを使用してデータベースを更新したい ごう 18/8/1(水) 13:56 質問[未読]
【80080】Re:ADODB.Recordsetを使用してデータベース... 亀マスター 18/8/1(水) 22:06 発言[未読]
【80081】Re:ADODB.Recordsetを使用してデータベース... ごう 18/8/2(木) 9:45 お礼[未読]

【80079】ADODB.Recordsetを使用してデータベース...
質問  ごう  - 18/8/1(水) 13:56 -

引用なし
パスワード
   ADODB.Recordsetを使用してデータベースの更新をするマクロを作成しています。

更新する項目が多いので、Update分を分けて書こうとしました。
以下のようなコードを書きましたが、2回目のUpdate文で
「実行時エラー '3265': 要求された名前、または序数に対応する項目がコレクションで見つかりません。」というエラーメッセージが出ます。

なぜこのようなメッセージが出るのか、そしてどこを見直せばよいか、教えていただけないでしょうか?


With rs2
  ' テーブルを開く
  .Source = "TABLE"
  .ActiveConnection = cn
  .CursorType = adOpenKeyset   ' キーセットカーソル使用
  .LockType = adLockPessimistic  ' レコード単位排他的ロック
  .Open
  
  .Find "SerialNo = '" + strSerialNo + "'", 0, adSearchForward
  
  ' レコードを更新する
  .Update Array("A", "B", "C"), Array(Data11, Data12, Data13)
  .Update Array("D", "E", "F", "G"), Array(Data14, CStr(Color14), Data15, CStr(Color15))
End With

rs2.Close

【80080】Re:ADODB.Recordsetを使用してデータベー...
発言  亀マスター  - 18/8/1(水) 22:06 -

引用なし
パスワード
   フィールド名のUpdateメソッドの引数に指定したD、E、F、Gのどれかが名前を間違っていたりしないでしょうか。

【80081】Re:ADODB.Recordsetを使用してデータベー...
お礼  ごう  - 18/8/2(木) 9:45 -

引用なし
パスワード
   ▼亀マスター さん:
>フィールド名のUpdateメソッドの引数に指定したD、E、F、Gのどれかが名前を間違っていたりしないでしょうか。

お返事ありがとうございます。
引数に指定したD、FはDatetime型だったのですが、変数に空文字を指定していました。
D、Fはテーブル作成時、NULLを受け付けるようにしているので、
変数空文字となる場合(Excelのセルが空白の場合)は、Nullを代入することで対応しました。

28 / 13182 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free