• ベストアンサー

この場合どちらのクエリが実行されるのか?

クエリ1とクエリ2が開いている状態で DoCmd.Requery を実行した場合、 どちらが実行されるのでしょうか? 実験してみたのですがイマイチよくわからなかったです。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.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

lkjhgfdkk
質問者

お礼

有難うございます。アクティブなものなのですね。 SelectObject で特定してみようと思います。

関連するQ&A