- ベストアンサー
ACCESSの検索結果のレコード移動時イベント
Access2010です。 F_マスタにF_サブのサブフォームが組み込まれています。 F_マスタには検索ボタンがあって、その検索結果がF_サブに表示されます。 その検索結果についてレコード移動時イベントを使い、クリックしたレコードの処理を行っています。 ところが、検索結果の1行目だけイベントが発生しません。 1行目以外ではイベントが発生し、その後は1行目でも発生するようになります。 表示直後はカレントレコードが1行目に存在するため、1行目をクリックしても移動とみなされない? そこで、表示直後でも1行目のイベントを発生させる何か良い方法はないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「レコード移動時」イベントだと、質問の不具合以外にも、PageDown などのキーボードで移動したときもイベントが発生してしまいますので、適切でないと思います。 詳細セクションの「ダブルクリック時」かフォームの「ダブルクリック時」の方がいいかと思います。 が、お勧めは、詳細セクションにコマンドボタンを配置して、その「クリック時」が分かりやすくてユーザーの混乱が少ないと思います。
お礼
ありがとうございます。 クリック時のイベントの内容はクリックしたレコードの色を変えることだったのですが 先頭行はダブルクリックでもイベントが起きないため不思議に思い調べたところ 検索ボタン押下時のスクリプトの最後で (実際の記述) Forms![F_一覧main]![F_一覧sub].Form![テキスト45] = "" (押された行IDを格納するテキスト45をクリアする) (このテキスト45を使って処理をしている部分)が邪魔をしていました。 この記述をクエリーの前に記述したところ 検索後は必ず1行目がクリックされた状態(レコードに色がつく)で表示されますが まあ、許容範囲で解決としたいと思います。 お勧めの方法も参考にさせていただきます。 ありがとうございました。