
現在、仕事でAccessを使用し始めましたが、イベントの発生するタイミングがわからなくて困っています。
「テーブルA」を元にした単純な帳票形式のフォームを作成し、そのフォームのレコードが1件更新(追加、変更)される度に、他のテーブルBの項目を更新する必要があり、VBでフォームのイベント「Form_AfterUpdate」に、テーブルBの更新内容を記述していますが、新規でレコードを入力しても、既存のレコードの変更を行っても、「Form_AfterUpdate」が実行されない様なのです。確認の為に、「Form_AfterUpdate」内にブレークポイントを設定していますが、ブレークする事も無く、テーブルBの更新もされていません。
ネット上で色々検索してみたのですが、結局見つけられずに、困っています。通常、レコードの変更時に、更新後処理が実行されない事ってあるのでしょうか?
No.1ベストアンサー
- 回答日時:
Q、通常、レコードの変更時に、更新後処理が実行されない事ってあるのでしょうか?
A、ありません。ただし、<Tab移動=カレントレコード>という設定であれば別です。
<Tab移動=カレントレコード>という設定でない場合。
1、不良セクタをスキャンして回復させてみる。
2、DB の最適化・修復をしてみる。
3、関数とかコードのコピペを無原則にしていないかを調べる。
大抵の不具合は、1と2で解消されます。
前回、コンセントを引っこ抜いてAccess を異常終了させた場合、1は有効です。
また、定期的にDB の最適化・修復をしないといけないのも Access の特徴です。
例えば、プロシージャを一度だけコピペしても不具合は発生しません。
だが、仮に順序を並び変えたりするとプロシージャの一切の動作は保証されない場合もあります。
これは、初期によく犯す過ちです。
先ずは、1、2、3を・・・。
Husky2007さん、早速の回答ありがとうございました。
教えていただいた方法の1~3を実行した所、1,2を実行した所までは、状況が変わらなかったのですが、3の方法で、Husky2007さんが意図されていた事とは違うかもしれませんが、とりあえず「Form_AfterUpdate」を一旦全て削除し、もう一度作成し直したら、なんと、ちゃんと実行されるようになりました!ありがとうございました!
「Form_AfterUpdate」内で実行する内容を、最初は他のイベント内に入れていて、何回かコピペで移動したりしていたせいでしょうか?
Husky2007さんが書かれていた、
「例えば、プロシージャを一度だけコピペしても不具合は発生しません。
だが、仮に順序を並び変えたりするとプロシージャの一切の動作は保証されない場合もあります。これは、初期によく犯す過ちです。」
について、よろしければもう少し詳しく教えていただけないでしょうか?
今後の参考にもさせていただきたいので、お時間のある時で結構です。
とりあえずは、ありがとうございました。
No.3
- 回答日時:
X そこで一旦念の為にAccess を再起動。
O そこで一旦念の為にプロシージャを削除して Access を再起動。
なお、Access 2.0、VB 4.0 時代から確認されている不具合です。
Husky2007さん、早速の追加の回答、ありがとうございます。
Access 2.0、VB 4.0 時代から確認されている不具合なんですか...
そんなに以前からの不具合なんですね。
こういう症状があるという事がわかったので、今後は気をつけたいと思います。
度々ありがとうございました。
No.2
- 回答日時:
Q、何回かコピペで移動したりしていたせいでしょうか?
A、そうです。
その場合、コピペしたプロシージャを一旦メモ帳等に保存します。
そこで一旦念の為にAccess を再起動。
その後に、メモ帳から戻せば正常化します。
>とりあえず「Form_AfterUpdate」を一旦全て削除し、もう一度作成し直したら・・・
結局は同じことです。
常に、削除、再打キーしなくても回復できますよ!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「フォームを作成できませんでした」
Access(アクセス)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
5
Accessのコンボボックスでリストが選択できない
Word(ワード)
-
6
レコード削除時に(サブ)フォームに表示される#Deleted"について"
Access(アクセス)
-
7
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
8
どこにもフォーカスを当てたくない
Access(アクセス)
-
9
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
10
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
11
アクセスでレコードの内容が変更されたかどうかを調べるには
Access(アクセス)
-
12
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
13
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
14
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
15
AccessのFormの設定で、開いた時に必ず最大化で表示する方法が分からず困っています
Access(アクセス)
-
16
ユーザーがクリックするまでフォーカスをつけない方法(Access VBA)
Visual Basic(VBA)
-
17
Accessの更新後処理で特定の条件を満たしている場合、フォーカスを移動させない方法
PowerPoint(パワーポイント)
-
18
ACCESSフォーム入力後の確定
Access(アクセス)
-
19
accessでイベントを中止するようなコマンドはあるのでしょうか?
その他(データベース)
-
20
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでレコードの複製
-
ACCESS 複数のフォームから同一...
-
Accessフォームで詳細内の任意...
-
accessでオートナンバーを使わ...
-
MSAccess ロック状態かどうかを...
-
MS.Access でサブフォーム付の...
-
アクセスで複数レコードを1レ...
-
ファイルメーカーで重複してイ...
-
アクセエスのレコードの更新をV...
-
バーコードリーダーを使用してA...
-
AccessVBA フィルタとカレント...
-
エクセルで、抽出したデータだ...
-
Accessでデータを更新したらそ...
-
AccessのWHERE句において、変数...
-
「パラメータが少なすぎます。3...
-
Accessのコンボボックスでリス...
-
ソフトの製品コードを知りたい
-
X-Ripperというフリーウェアに...
-
AccessでIDを入力したら他の項...
-
エクセル関数で住所から丁目番...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでレコードの複製
-
ACCESS 複数のフォームから同一...
-
MS.Access でサブフォーム付の...
-
accessでオートナンバーを使わ...
-
ACCESSフォーム入力後の確定
-
Accessで経過日付に応じて色を...
-
AccessのRefresh・Requery・Rep...
-
アクセエスのレコードの更新をV...
-
Accessフォームで詳細内の任意...
-
access の 最終レコードの判定...
-
新しいレコードへの移動時にト...
-
MSAccess ロック状態かどうかを...
-
ファイルメーカーProでレコード...
-
Accessの「Form_AfterUpd...
-
ファイルメーカーで重複してイ...
-
DoCmd.SearchForRecord が動か...
-
docmd.gotorecordを起動するには
-
ファイルメーカーのレコード複...
-
AccessVBA フィルタとカレント...
-
access2010 特定文字を含むレコ...
おすすめ情報