社員情報登録でADOを使用しています。
以下コードにて検索し、すでに登録がある場合は
変更内容を更新します。
登録がない場合は新規に登録をします。
以下コードですと、更新はうまくできるのですが、
新規登録の場合下記エラーがでます。
「実行時エラー '2147217887(80040e21)
複数ステップのOLE DBの操作でエラーが発生しました。
各OLE DBの状態の値を確認してください。作業は終了しませんでした。」
ネットを色々調べましたがギブアップです。
対処方法を教えていただきますようお願い致します。
Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Set CN = CurrentProject.Connection
Set RS = New ADODB.Recordset
RS.Open "meibo_T", CN, adOpenKeyset, adLockOptimistic
RS.Find "名前 LIKE '" & Me![検索用名前] & "'"
If RS.EOF Then '該当氏名がない場合(新規登録)
RS.AddNew
RS![氏名] = Me![氏名]←ここでエラーがでます
RS!住所 = Me![住所]
RS.Update
Else '該当氏名がある場合(データ更新)
RS![氏名] = Me![氏名]
RS!住所 = Me![住所]
RS.Update
End If
meibo_Tのデザインはどうなってますか?
RS.Find "名前 LIKE '" & Me![検索用名前] & "'"
と
RS![氏名] = Me![氏名]
で名前なのですか?
氏名なのですか?
後はどんなフォームを作成されているのでしょうか?
スナフキン様
ご連絡ありがとうございます。
ご指摘の件、実際のフィールド名を変えて質問していたため誤記です。
RS![名前] = Me![名前] となります。
このコードの前に、
RS![check] = Me![check] ←チェックボックスがあるんですが、じつはここが問題だったようです。
フォームを開いた時に、チェックボックスがfalseになっていませんでした。
フォームロード時にチェックボックスを、
Me.check.Value = Falseにすることで解決できました。
ありがとうございました。