[Accessマクロ] ダイアログモードで開いたフォームの再クエリが効かない対処法
アクセスマクロのメモ。ダイアログモードで開いたフォーム上のサブフォームに再クエリをかけるとき、対象が背後のフォームになっちゃって再クエリがかけられない! という状況にハマったので。
ざっくりな仕様
こういうテーブルがあったとして、
こういうフォームでサブフォーム内にテーブルを表示させるとします。上のボタンでテーブルに変更をかけるアクションをしたあと、このサブフォームには再クエリをかけてあげないと、変更された内容が反映できません。
こんな感じで。コントロールを指定しなければアクティブフォーム全体に再クエリがかかることになります。
ダイアログモードで再クエリが効かない現象
さて、じゃあ今度は別に「メニュー」となるフォームを作って、そこからさっきのフォームを開くとします。このとき、ウィンドウモードを「ダイアログ」にすること、私は結構あるんです。
こんな感じで、Accessのタブ内に並列に表示するんじゃなくて、ポップアップで表示されます。このモードだと、このウィンドウを閉じないと他の作業ができなくなるので、開きっぱなしにされることがないし、いろいろ便利で。
そしたらなんとびっくり、再クエリが効かないときが!!! 検証してみたものの、いつもじゃなくて何かのタイミングでアクティブフォームが裏に回っちゃってるときがあるみたいで…、、さて困った。
「オブジェクトの選択」で自分自身をアクティブに
いじくり倒したところ、再クエリの前に「オブジェクトの選択」を入れてアクティブにし直すのが有効みたいでした。「データベースウィンドウ内」というプロパティは「既に開いているオブジェクト」なので「いいえ」で良さそうです。
以上です! 「いつもじゃない」現象なのでググっても出てこないしで困りました…、誰の役にも立たないかもしれないけど一応書き残しておきます!!
コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。