• ベストアンサー

VBでACCESS(アクセス)にSQLを発行したときのエラーについて

VBでアクセスのデータにSQLを発行してテーブルに更新等の処理をしています、削除や検索では該当するレコードがないとエラーコードが返りますが、挿入の場合はすでにあるデータに重複するデータを登録する(二重登録)処理をしてもエラーになりません? なにもメッセージがないので登録されたのか、だめだったのかを判断することができません、このような場合に二重登録の判定をするには先に検索をして当該データの有無を調べた後に登録処理にを行うようにするしかないのでしょうか?(同じことが更新についてもあてはまります) データの挿入にはjetSQLのinsert intoステートメントを使用しています データの更新には同updateステートメントを使用しています

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

  • ベストアンサー
noname#3345
noname#3345
回答No.1

キーの設定などはどうなっているのでしょう? 二重登録ができないようなキー設定になっていれば、エラーは返ると思いますが。 ただ、普通は存在チェックをかける方が確実だと思いますけど。 一度セレクトでSQLをまわして、該当レコードが0件だったらinsertを行う、という風にした方がいいと思いますよ。

unname1
質問者

お礼

イミディエイトで確認したところエラーが表示されていました、エラーメッセージの処理の記述間違いでメッセージが表示されませんでした。 アドバイスをいただいた存在チェックもするようにしておきます。 ありがとうございました

その他の回答 (1)

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

いえ、INSERTする際、主キーが重複したレコードが既に存在する場合、エラーが返ってきます。 従って、おそらく、主キーが設定されてない、あるいは、設定されていたとしても違ったフィールドに設定されているのではないでしょうか? もう1度、主キーの設定を確認してみて下さい(ACCESSのテーブルを選択してデザインボタンを押し鍵マークを確認してみて下さい)。

unname1
質問者

お礼

イミディエイトで確認したところエラーが表示されていました、エラーメッセージの処理の記述間違いでメッセージが表示されませんでした。 主キーの見直しをしていてとんでもない間違い(この件とは無関係なので詳細は省略します)にも気づきました、アクセスのキーの設定については考えてもみませんでした、いろいろな角度から調査をする必要性を再認識しました ありがとうございました。