- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスVBA 初心者 レコードの削除)
アクセスVBA 初心者 レコードの削除
このQ&Aのポイント
- アクセス初心者がVBAでレコードの削除に挑戦しています。年次更新プログラムの一環で、消化履歴レコードを削除する部分を作成しています。しかし、実際にはレコードが削除されていません。どこをチェックすれば良いでしょうか?
- アクセス初心者がVBAでレコードの削除につまづいています。更新計算処理後、消化履歴レコードをテーブルから削除する部分を作成していますが、レコードが削除されません。どこを確認すれば良いでしょうか?
- アクセス初心者がVBAでレコードの削除に取り組んでいます。年次更新プログラムの一部で、消化履歴レコードを削除する部分を書いていますが、削除処理が正常に動作していません。どこをチェックすべきでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#79209
回答No.1
レコードが削除されていないというのは、どのように確認されていますか? フォームとテーブルを関連づけている場合は、フォームのレコードソースを リクエリしていないので、 幻が見えてしまっているのかも知れません。 あと、rs.Openやrs.MoveNext等にはCallはいらないですし、 ConnectionをCurrentProjectから引っ張ってくるのなら、 あえてcnnを定義しなくても rs.Open(tbl, CurrentProject.Connection, adOpenForwardOnly, adLockBatchOptimistic) でもよろしいかと... また、 Do While rs.EOF = False より Do Until rs.EOF のほうが判りやすいかと... それと、わたしの場合、変数名の頭には変数の型を表すために strTblなどとしています。 余計なお世話だったら、ゴメンナサイ。
お礼
vizzar様 アドバイスありがとうございます。 >レコードが削除されていないというのは、どのように確認されていますか? >フォームとテーブルを関連づけている場合は、フォームのレコードソースを >リクエリしていないので、 >幻が見えてしまっているのかも知れません。 画面上に見えているサブフォームのテキストボックスが、 まったく変化がないのと、 処理後にテーブルを開いてみますと、レコードが削除されずに そのまま残っているんです。 「幻」については、はじめ私もそうではないかと思いました。 大昔に、COBOLで画面処理のプログラムを組んだことがあるので、 画面上の問題?という気もしましたが、 テーブルのレコードが削除されてないものですから、 Deleteの命令そのものがうまくいってないのかも?と。。。 リクエリということを書いていただきましたが、 削除処理後に、サブフォームのほうの表示を更新するのに、 なにかしら、記述なり設定なり必要ですか? (実際、なにも分からず仕事上の必要に迫られての暴挙です(^^ゞ・・すみません) いろいろと記述についてのアドバイスありがとうございます。 初めての挑戦(アクセス自体も)で、 マニュアル本にかいてあるそのまんまを書き写している状態です。(^^ゞ Do While は、Do Until に改めました。 こちらのほうがイメージ的にもピッタリです。 ありがとうございました。 なお、サブフォームのプロパティで「削除の許可」というのがありますよね。 そこは「はい」にはなっています。