プロが教えるわが家の防犯対策術!

お世話になっております
よろしくお願いします。

WindowsXP SP3
office2000
を使っています

テーブルに2つのデータがり
それをフォームで表示しています
表示した際に下のほうにページ移動の黒い三角のマークがあると思うのですが
そのページを移動をしたときに発生するイベントはないのでしょうか?
データによってラベルを表示・非表示をしたいのですが
最初に非表示になると次からは非表示のままです

Private Sub Form_Load()
If me.フィールド名 = 0 Then
me.フィールド名.Visible = False
End If
これをどこに書いたらページごとに実行できるのでしょうか?

以上よろしくお願いします。

A 回答 (2件)

プロパティシートで「レコード移動時」、VBAで「Current」イベントがご希望に


沿うかと思います。

Private Sub Form_Current()
  If Me!フィールド名 = 0 Then    'フィールドの値が0の場合
    Me!ラベル名.Visible = False
  Else                  'フィールドの値が0以外の場合
    Me!ラベル名.Visible = True
  End If
End If


【以下、蛇足】
恐らく単票型フォームを使用されているものと思いますので問題はないはずですが、
もしも帳票型の場合は、ラベルの表示/非表示は全てのレコードで同じ(→フォームの
左端に、横向きの「▼」があるレコード(=カレントレコード)の値で判定される)に
なりますので、ご注意下さい。

この回答への補足

返答ありがとうございます
単票型で作っています。

レコード移動時にイベントプロシージャーで
msgbox "a"としてみたのですが
最初に読み込むときにしか実行されません
なにかプロパティの設定が間違っているのでしょうか?

申し訳ありませんがなにかお分かりでしたら教えてください
以上よろしくお願いします。

補足日時:2009/11/18 17:02
    • good
    • 0

No.1です。



> なにかプロパティの設定が間違っているのでしょうか?

ちょっと原因が考えにくい状況ですね(汗)
念のため、の意味合いが強くなってしまいますが、以下の点を確認してみてください。

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

・・・お役に立てるかわかりませんが、参考まで。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/23 10:41

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