• ベストアンサー
  • 暇なときにでも

Accessイベントプロシージャについて

前からの疑問なのですが、フォーム上のイベントプロシージャについてお教え下さい."更新前""更新後""フォーカス取得時""フォーカス取得後""フォーカス喪失時""フォーカス喪失後"の違いがいまいち分かりません.今見たら"ダーティ時"というのも…。ループしてしまっているときの対処ですか?ご回答、お願いいたします。

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.1
  • ARC
  • ベストアンサー率46% (643/1383)

イベントは発生する順序についてはヘルプでご確認ください。 フォームオブジェクトの場合、 BeforeUpdateはテーブルにデータが保存される直前に発生し、更新処理をキャン セルできる。 AfterUpdateはデータが保存された直後に発生する。データが更新された時に確実 に実行される処理を記述する。といった感じですか。 Beforeなんたらは、ある現象が起こる直前に、データをチェックしたり、動作を キャンセルしたりするために使う。Afterなんたらは、ある現象が起こった直後に、 その現象に連鎖して発生する処理を実行するために使う。 と憶えておけばいいでしょう。まあ、使っているうちに理解できますよ。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

どうもありがとうございました。 お礼がべらぼうに遅くなってしまって申し訳ありません。

その他の回答 (1)

  • 回答No.2

とりあえずですね、MSの製品はなんかわからないことがあれば、そこにフォーカスを あてておいてF1キーを押すと可能な限りその部分に対するヘルプを出そうとしますの で、F1を押しまくりましょう。 ~前 というのはそのイベントが発生したら、ナニを差し置いても先に処理する内容を 記述します。その後にシステム側の諸々の処理があって、その後にナニかをしたければ ~後 ってとこに処理内容を書きます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

どうもありがとうございました。 お礼がべらぼうに遅くなってしまって申し訳ありません。

関連するQ&A

  • Access2010イベントプロシージャ起動せず

    access2003からaccess2010にアップグレードしたところaccessのイベントプロシージャの一部が発生しなくなりました。 例えば「フォーカス喪失時」 ボタンの「クリック時」は機能しますが、項目の「変更時」、「更新後処理」は使えなくなりました。 どなたか対処方法をご存知でしたら、教えてください。

  • アクセスvba [イベント プロシージャ]つけたい

    もうフォームモジュールにイベントは出来上がってるのですが コントロールの名前を変更したため デザインビューのプロパティの[イベント プロシージャ]と言う文字が消えてしまいました。 フォーム上の全てのコマンドボタンのクリック時に [イベント プロシージャ]と言う文字を入れたいのですが そのような作業は可能でしょうか? [イベント プロシージャ]と言う文字が入れば、該当のイベントは既にモジュールにある為 イベントとして機能します。

  • Access2000のVBAのイベントプロシージャについて

    以前から疑問に思っていましたが、イベントプロシージャの「更新前」と「更新後」と 「変更時」の意味、というかタイミングがよくわかりません。例えばコンボボックスの 「更新前」とは、具体的にはどういうときなのでしょうか。コンボの値を更新する前と いうのなら、何もいじってない状態という意味に取れるのですが、何もいじってないなら イベントは発生していないと思うのですが。また、コンボボックスの「更新後」は、 値が変わったときだと思うのですが(例えば「北海道」が選択されているコンボの値を 「東京都」に変えたときなど)、「更新後」と「変更時」はどう違うのですか? どうぞよろしくご教授ください。

  • Accessでのイベントプロシージャ

    他の人が作成、使っているファイルで相談されたのですがわからないので教えてください。 今まで自分の意図するとおりの動いていたレポートがあります。 レポートのオープン時にイベントプロシージャを使ってコードをかいていました。 ですが動作がおかしかったので、イベントプロシージャを見ようと、デザインビューで 「開く時」のイベントプロシージャの横の「…」ボタンを押しても何も起こりません。 私もやってみたのですが何もおきません。 試しにと思い、「閉じる時」に新規にイベントプロシージャを作ってみようと、 横の▼ボタンを押してイベントプロシージャを選択し、「…」ボタンを押しても反応しません。 またMicrosoft Visual Basicを開き、左側のウィンドウを見たところ、上記の動作がおかしい レポート名が表示されていませんでした。 これはもうコードが消えてしまっているということでしょうか?

  • access イベント名取得方法

    accessでフォーム、またはコントロールのイベント名の取得方法を教えてください。 フォーム、コントロール、レポートには、それぞれプロパティシートを持っていて、開くと、 「書式」「データ」「イベント」「その他」「すべて」の4つのタブに分かれています。 やりたいことは、この4つの中で「イベント」タブにある内容をイベント毎に取得したいのです。 <コーディング例> '全フォームループ For Each OBJ In CurrentProject.AllForms 'フォームを開く DoCmd.OpenForm OBJ.NAME, acDesign '****************************************************** '*** ここでフォームのイベントタブの内容を取得したい *** '****************************************************** '全コントロールに対してループ For Each CTL In Forms(OBJ.NAME).Controls '****************************************************** '*** ここでフォームのイベントタブの内容を取得したい *** '****************************************************** Next CTL Next OBJ   <取得結果の例> 1.クリック時:[イベントプロシージャ] 2.更新後処理:aaa() どなたかご教授お願いします。

  • VBAでTabキーを移動させたい

    Access上のフォームで、ある結果がテキストボックスに表示されたときのみ、AというコマンドにTabキーを自動的に移動させたいのですが、 1.イベントプロシージャはフォーカス取得後なのか、喪失時なのか 2.VBAはIf文でどうかけばよいのか うまくいかなくて困っています。ご回答お願いします。

  • (アクセス)全てのイベントプロシージャが無反応に

    何らかの原因でプロシージャやコマンドボタンに設定したマクロ等が無反応になる現象に苦慮しています。 多くのフォームの中で、この現象に関連するフォームは2画面あり、それぞれをフォームA、フォームBということで説明いたします。((1)~(4)) (1)フォームAのコマンドボタン押下でフォームBを開きクエリーのデータ(フォームAで指定した条件)  を表示しています。  フォームBで他のフォームと異なっているプロパティは次の通りです。  ・ポップアップ ----はい  ・作業ウィンド固定 --はい (2)フォームBにはレコードソース(クエリ)の値を表示する幾つかのテキストボックスとコンボボックス  が2つあり、それぞれをコンボA、コンボBとするとフォームBを開いた時はそれぞれにクエリーの   データを表示し、変更する場合はコンボAで選定した条件でクエリによりコンボBにデータを表示す  るようにしています。 (3)なお、コンボAの列数は2で、コンボボックスには列1のデータ(商品名)を表示するようしていて列 2の値(商品コード)を一旦テキストボックスに取り出し、そのコードでクエリによりコンボBのデータ  を表示しています。テキストボックスのプロパティのコントロールソースには次のように記述していま す。   =コンボ186.column(1)   ※=コンボ186がコンボAのことです (4)あと、フォームBにはデータをチェックするためのイベントプロシージャが幾つかとフォームAへ戻る ためのコマンドボタンがありますが他のフォームと比べても特に問題は無いように思えます。 以上のような環境でフォームAからフォームBを開いた時に、フォームBにはレコードソースであるクエリの値は全て表示するものの全てのイベントプロシージャ及び(3)で説明しました  =コンボ186.column(1) の処理が一切動作しなくなります。 しかし、次の操作により回復し、その後はACCESSを終了し再起動しても正常に動作します。  ・フォームBをデザインビューで開く  ・フォームBを開く時に設定しているイベントプロシージャを表示  ・イベントプロシージャをいじって閉じる。(内容は変更しない)  ・フォームBをホームビューで開く   だらだらと長くなり説明も不十分かと思いますが、原因がどうしてもわからなく困っております。 何か手がかりを教えて頂けたらと思い投稿しました。 よろしくお願いいたします。

  • クリックイベントは実行されない

    サブフォームのテキストボックスにクリックイベントでVBAを実行するようにしてるのですが クリックしても何も反応がありません。 だけど試しに同じテキストボックスに、フォーカス取得後のGotFocusイベントを[イベント プロシージャ]で選択してみましたが テキストボックスにフォーカスが触れるとイベントが実行されます。 なぜクリックイベントは実行されないのでしょうか? サブフォームは帳票フォームです。それ関係ありますか?

  • Access2013イベントプロシージャのエラー

    Access2010でコードビルダーで作成したイベントプロシージャをAccess2013で実行するとエラーが出ます。エラーメッセージは[OLEサーバまたはActive X コントロールとのコミュニケーション時に起こります。] ヘルプメッセージは[イベントのロジックの箇所が正しく設定されていない場合に起こります。たとえば、フォームのOnOpenプロパティが =[Field]とセットされている場合、エラーが起こります] (スミマセン、英語のACCESSを使用しているのでエラーメッセージも英語なので、上記は表示された英語エラーメッセージの意訳です) 2010のマクロビルダーで作成したイベントプロシージャは2013でも問題なく実行されます。 どのように対応したらいいのか教えていただけますでしょうか?

  • アクセス イベントプロシージャーを記述する場所。

    アクセス初心者です。表題の件です。アクセスクラブを参考にしながら管理簿を作成しています。SampleFile184を見ながら作っているのですが、イベントプロシージャーを記述する場所が分かりません。カレンダーコントロールを貼り付けたフォームに以下のようなプロシージャーを記述します。とありますが、どこから入って記述すればいいのでしょうか?フォームヘッダーをクリックしてデザインから開いて、クリック時のとこでしょうか?それともモジュールを開いて書いていけばいいのでしょうか?初心者の質問ですみません。困っています。わかる方がいましたら、ご教授ください。よろしくお願い致します。