• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAではなく、マクロでのフィルターのかけ方を教え)

マクロでのフィルターのかけ方を教えてください

このQ&Aのポイント
  • VBAではなく、マクロでAccessのフィルターをかける方法を教えてください。
  • テーブル1のmojiフィールドには文字列データがあります。
  • テーブル1を基にしたフォームにはmojiと紐付けたテキストボックスがあります。マクロを実行して「文字列1」を抽出するフィルタの実行をしたいのですが、実行するとエラーが発生します。マクロの作り方を教えてください。

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.1

> フィルタ名には何を入れればいいのでしょうか? Where条件式 を設定するのなら、フィルタ名は必要ありません。 > 「このウィンドウでは"ApplyFilter/フィルタの実行"アクションを実行できません。」 これは、作り方の問題ではなく、実行方法の問題です。 アクティブなフォームに 対して フィルタを実行するのですが、 マクロをデザインで開いて実行したり、 データベースウィンドウから実行すると その時点で、フォームはアクティブではありませんから (フォーカスは、マクロとか、データベースウィンドウにある) 「このウィンドウでは・・・」 のエラーになります。 フォームを選択しておいて、メニューバー等から、「マクロの実行」 で 実行してください。 あるいは、そのフォームにコマンドボタンを配置し クリック時にマクロを実行するのも良いでしょう。    ここまで上手くいっても、 実際にフィルタは思ったようにはかからないでしょう。 問題は > 次に、Where条件式には > [Forms]![フォーム1]![moji]="文字列1" フィルタは フォームのコントロール にかけるものではなく レコードソースのフィールドに対してかけるものです。 テキストボックス [txtMoji] のコントロールソースが [moji] なら Where条件式は  [moji]="文字列1" になります。

bmgjtu
質問者

お礼

実行してみたら出来ました。 ご親切にありがとうございます。