• ベストアンサー

Access レコード削除時に「カレントレコードがありません」エラーが表示されてしまう

いつもお世話になっております。 フォームに「レコードの削除」ボタンを作成して実行したところ、 「カレントレコードがありません」と表示されてしまいます。 削除そのものは、正しく行われている(削除したいレコードが削除されている)のですが、 なぜ、そのようなメッセージが出てしまうのか分かりません。 他のフォームでは、削除するレコードが最後のレコードで無い限り、 そのようなメッセージは出ません。 また、そのフォームのレコードソースになっているクエリでは、 問題なく削除が実行されます。 削除ボタンの作成は、コントロールウィザードを使って行いました。 ちなみにVBAでは下記のような記述になっています。 Private Sub 削除テスト_Click() On Error GoTo Err_削除テスト_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Exit_削除テスト_Click: Exit Sub Err_削除テスト_Click: MsgBox Err.Description Resume Exit_削除テスト_Click End Sub メッセージを表示させないためには、どのようにしたら良いでしょうか?? また、最後のレコードを削除した場合にも、 「カレントレコードがありません」メッセージを表示させなくするには どのようにしたら良いでしょうか? 教えてください。

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

  • ベストアンサー
回答No.4

>On Error Go To 0で試してみたのですが、 >やはり「カレントレコードがありません」表示がされてしまいます。 あ、いや、On Error GoTo 0 じゃなくて On Error Resume Next を使ってください、って書いたつもりだったんですが・・・。まぁ、他の方法で回避できたみたいなので、いいんですけど。

kumikoara
質問者

お礼

たびたびのご回答、どうもありがとうございます!! 色々と教えていただいて、勉強になりました。 また、どうぞよろしくお願いします!!!

kumikoara
質問者

補足

その後試してみたところ、メッセージ表示がなくなりました!!! ホント、助かりました。 どうもありがとうございます!!!!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.3

#1です。 MSの技術情報検索にこんなのがありました。kumikoaraさんの状況に当てはまるかどうかは自信なしですが、新しい回答がないようなのでお困りだと思い投稿しました。 僕はDoMenuItemを使ったことがなく、このようなケースだったら、クエリーを作っておいて呼び出すか、モジュールに直接SQLを書いちゃいます。 頑張ってくださいヽ(^。^)ノ

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;259873&Product=accJPN
kumikoara
質問者

お礼

ご回答、どうもありがとうございます。 URL参考になりました。 フォーム上でのレコード削除はやめて、他の方法で対応することにしました。 SQLって良く分からなくて・・・。 何度もご親切に対応いただき、ありがとうございます!! また、機会がありましたらよろしくお願いいたします。

すると、全ての回答が全文表示されます。
回答No.2

On Error GoTo 0 は、「現在のプロシージャに含まれる使用可能なエラー処理ルーチンを無効にします。」ということですので、 Err_削除テスト_Click: MsgBox Err.Description Resume Exit_削除テスト_Click が使用されなくなる変わりに、VB のエラーメッセージが表示されるようになると思います。 On Error Resume Next を使用すると、エラーがトラップされなくなります。 エラートラップと「削除してもよろしいですか?」の確認メッセージは関係ないので、「削除してもよろしいですか?」は、表示するように設定されていれば表示されるはずです。 「カレントレコードがありません」が表示される原因は、ちょっとよくわからないです・・・。

kumikoara
質問者

補足

ご回答、ありがとうございます。 On Error Go To 0で試してみたのですが、 やはり「カレントレコードがありません」表示がされてしまいます。 また、 DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 だけを生かすよう書き直したのですが、やはり「カレントレコードがありません」表示がされてしまいます。。。 どうしたら、表示がなくなるんでしょうかねぇ・・・

すると、全ての回答が全文表示されます。
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

 ただ単にエラーを表示したくないだけでしたら、   「On Error GoTo Err_削除テスト_Click」の下に   「On Error GoTo 0」  と追加すればエラートラップを中止できたと思います。  回答がなくお困りだと思い、自信なしですが投稿しました。  頑張ってくださいヽ(^。^)ノ

kumikoara
質問者

お礼

ご回答、ありがとうございます。 教えていただいた方法だと、おそらく 「削除してもよろしいですか?」というメッセージも 表示されなくなってしまうでしょうか?? できれば、削除に関するメッセージは残したいなと 思っていたのですが。。。 自分でメッセージボックスを作成すればいいのかしらね。 頑張ってみます。 ありがとうございました(^0^/"

すると、全ての回答が全文表示されます。

関連するQ&A