- ベストアンサー
この場合どちらのクエリが実行されるのか?
クエリ1とクエリ2が開いている状態で DoCmd.Requery を実行した場合、 どちらが実行されるのでしょうか? 実験してみたのですがイマイチよくわからなかったです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> どちらが実行されるのでしょうか? DoCmd.Requeryが実行されるのは、それが実行されるその瞬間に アクティブなもの(=タイトルバーが濃色表示されているもの)になります。 ・・・なので、イミディエイト ウィンドウ(Ctrl+Gキーで表示される画面) からRequeryを実行したなら、そのときアクティブだったクエリが対象に なりますが(→イミディエイトウィンドウやVBE画面はアクティブ判定の 対象外)、もしも「DoCmd.Requery」をフォームのコマンドボタンに置いて いるとしたら、Requeryが実行されるのは「コマンドボタンを置いた フォーム」になってしまいます。 クエリ1やクエリ2が開いている状態で、それらを特定してRequeryを 実行するには、その直前で「SelectObject」を使用します。 Private Sub ボタン1_Click() '開いているクエリ1を選択(第3引数をTrueにすると、データベース 'ウィンドウ(クエリ等の一覧の表示画面)上のクエリ1が選択されます) DoCmd.SelectObject acQuery, "クエリ1", False DoCmd.Requery End Sub
お礼
有難うございます。アクティブなものなのですね。 SelectObject で特定してみようと思います。