アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、仕事でAccessを使用し始めましたが、イベントの発生するタイミングがわからなくて困っています。
「テーブルA」を元にした単純な帳票形式のフォームを作成し、そのフォームのレコードが1件更新(追加、変更)される度に、他のテーブルBの項目を更新する必要があり、VBでフォームのイベント「Form_AfterUpdate」に、テーブルBの更新内容を記述していますが、新規でレコードを入力しても、既存のレコードの変更を行っても、「Form_AfterUpdate」が実行されない様なのです。確認の為に、「Form_AfterUpdate」内にブレークポイントを設定していますが、ブレークする事も無く、テーブルBの更新もされていません。
ネット上で色々検索してみたのですが、結局見つけられずに、困っています。通常、レコードの変更時に、更新後処理が実行されない事ってあるのでしょうか?

A 回答 (3件)

Q、通常、レコードの変更時に、更新後処理が実行されない事ってあるのでしょうか?


A、ありません。ただし、<Tab移動=カレントレコード>という設定であれば別です。

<Tab移動=カレントレコード>という設定でない場合。

1、不良セクタをスキャンして回復させてみる。
2、DB の最適化・修復をしてみる。
3、関数とかコードのコピペを無原則にしていないかを調べる。

大抵の不具合は、1と2で解消されます。
前回、コンセントを引っこ抜いてAccess を異常終了させた場合、1は有効です。
また、定期的にDB の最適化・修復をしないといけないのも Access の特徴です。
例えば、プロシージャを一度だけコピペしても不具合は発生しません。
だが、仮に順序を並び変えたりするとプロシージャの一切の動作は保証されない場合もあります。
これは、初期によく犯す過ちです。

先ずは、1、2、3を・・・。
    • good
    • 0
この回答へのお礼

Husky2007さん、早速の回答ありがとうございました。
教えていただいた方法の1~3を実行した所、1,2を実行した所までは、状況が変わらなかったのですが、3の方法で、Husky2007さんが意図されていた事とは違うかもしれませんが、とりあえず「Form_AfterUpdate」を一旦全て削除し、もう一度作成し直したら、なんと、ちゃんと実行されるようになりました!ありがとうございました!
「Form_AfterUpdate」内で実行する内容を、最初は他のイベント内に入れていて、何回かコピペで移動したりしていたせいでしょうか?
Husky2007さんが書かれていた、
「例えば、プロシージャを一度だけコピペしても不具合は発生しません。
だが、仮に順序を並び変えたりするとプロシージャの一切の動作は保証されない場合もあります。これは、初期によく犯す過ちです。」
について、よろしければもう少し詳しく教えていただけないでしょうか?
今後の参考にもさせていただきたいので、お時間のある時で結構です。
とりあえずは、ありがとうございました。

お礼日時:2008/02/29 13:25

X そこで一旦念の為にAccess を再起動。


O そこで一旦念の為にプロシージャを削除して Access を再起動。

なお、Access 2.0、VB 4.0 時代から確認されている不具合です。
    • good
    • 0
この回答へのお礼

Husky2007さん、早速の追加の回答、ありがとうございます。
Access 2.0、VB 4.0 時代から確認されている不具合なんですか...
そんなに以前からの不具合なんですね。
こういう症状があるという事がわかったので、今後は気をつけたいと思います。
度々ありがとうございました。

お礼日時:2008/02/29 14:06

Q、何回かコピペで移動したりしていたせいでしょうか?


A、そうです。

その場合、コピペしたプロシージャを一旦メモ帳等に保存します。
そこで一旦念の為にAccess を再起動。
その後に、メモ帳から戻せば正常化します。

>とりあえず「Form_AfterUpdate」を一旦全て削除し、もう一度作成し直したら・・・

結局は同じことです。
常に、削除、再打キーしなくても回復できますよ!
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A