• ベストアンサー

アクセス フォームをリクエリしたい

フォームAを閉じて、フォームBのテーブルに基づいたデータをリクエリ(更新)したいのですが DoCmd.Close acForm, "フォームA" DoCmd.Requery "フォームB" 実行時エラー2109 「カレントレコードには、フォームBという名前のフィールドはありません。」となってしまいます。 フィールド名ではなくフォームB全体を更新したいのですが、どうすればいいでしょうか? フォームBは開いている状態です。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

以下のようにすると、意図した動作になると思います: DoCmd.Close acForm, "フォームA" Forms!フォームB.Requery ※「Forms!フォームB.Requery」は  「Forms("フォームB").Requery」としてもOk。  (「""」の有無に注意してください) フォームのリクエリに「DoCmd.Requery」を使用することも できますが、その場合は対象フォームの指定は引数では なく(→この引数は特定のコントロールだけをリクエリしたい 場合に、そのコントロール名を指定するためのものです)、 フォームへのSetFocusで対応することになります。 (但し、上記に比べて、メリットはありません:  Access2007以前の機能で、VBAを直接組むのでは  なく、マクロからの変換でVBAにした場合、このメソッドが  使用されたりします) DoCmd.Close acForm, "フォームA" Forms!フォームB.SetFocus DoCmd.Requery

MOUELHZOLXOYM
質問者

お礼

ありがとうございます。

関連するQ&A

専門家に質問してみよう