• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームの移動でのイベント)

フォームの移動でのイベント

このQ&Aのポイント
  • WindowsXP SP3とoffice2000を使用している場合、フォームでテーブルの2つのデータを表示し、ページ移動のイベントを制御したい場合について質問です。
  • 特定の条件に基づいてラベルの表示・非表示を制御するために、Form_Loadイベント内に条件分岐を追加したい場合について質問です。
  • Form_Loadイベントにコードを追加することで、データに基づいてラベルの表示・非表示を制御することができるのかについて質問です。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

No.1です。 > なにかプロパティの設定が間違っているのでしょうか? ちょっと原因が考えにくい状況ですね(汗) 念のため、の意味合いが強くなってしまいますが、以下の点を確認してみてください。 ・移動できるレコードがあるか:   レコードソースが設定されていないフォーム(非連結フォーム)や「新規レコードのみ」   「1レコードのみ&追加不可」だった場合、フォームを開いた直後は同イベントが   発生しますが、以降は発生しないため、状況的には似ているかということで・・・(汗) ・マクロ/VBAで「レコード移動時(OnCurrent)」プロパティを切り替えていないか:   例えば、「Form_Current」Sub内で「Me.OnCurrent = ""」の代入を行うと、   以降のレコードイベント発生時にはコードが実行されなくなります。 ・当該mdbファイルに、新規のテーブル(レコードは適当に追加)と、それをレコードソースと  するフォームを作成し、同様にレコード移動時イベントにMsgBoxを設定してみる:   これでも同様に、展開時しかMsgBoxが表示されないとなると、当該mdbファイルか   Accessアプリケーションが破損していると推測されるため、修復か再インストールと   いうことになります。   (当該mdbファイルで不可だった場合は新規mdbファイルで同様に試してみて、    再現するならアプリケーションの問題、再現しないならファイルの問題、と)  ※ファイルの修復については、当該ファイルを開いた状態で、Accessのメニューから   「ツール(T)→データベース ユーティリティ(D)」内に、該当するものがあったと思います。   (こちらはAccess2003で、Access2000とはこの辺りの項目に違いがあったような記憶    があるため、明示できませんが(汗)) ・・・お役に立てるかわかりませんが、参考まで。

SAY_MAN
質問者

お礼

無事解決することができました ありがとうございました

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

プロパティシートで「レコード移動時」、VBAで「Current」イベントがご希望に 沿うかと思います。 Private Sub Form_Current()   If Me!フィールド名 = 0 Then    'フィールドの値が0の場合     Me!ラベル名.Visible = False   Else                  'フィールドの値が0以外の場合     Me!ラベル名.Visible = True   End If End If 【以下、蛇足】 恐らく単票型フォームを使用されているものと思いますので問題はないはずですが、 もしも帳票型の場合は、ラベルの表示/非表示は全てのレコードで同じ(→フォームの 左端に、横向きの「▼」があるレコード(=カレントレコード)の値で判定される)に なりますので、ご注意下さい。

SAY_MAN
質問者

補足

返答ありがとうございます 単票型で作っています。 レコード移動時にイベントプロシージャーで msgbox "a"としてみたのですが 最初に読み込むときにしか実行されません なにかプロパティの設定が間違っているのでしょうか? 申し訳ありませんがなにかお分かりでしたら教えてください 以上よろしくお願いします。

関連するQ&A