- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAではなく、マクロでのフィルターのかけ方を教え)
マクロでのフィルターのかけ方を教えてください
このQ&Aのポイント
- VBAではなく、マクロでAccessのフィルターをかける方法を教えてください。
- テーブル1のmojiフィールドには文字列データがあります。
- テーブル1を基にしたフォームにはmojiと紐付けたテキストボックスがあります。マクロを実行して「文字列1」を抽出するフィルタの実行をしたいのですが、実行するとエラーが発生します。マクロの作り方を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> フィルタ名には何を入れればいいのでしょうか? Where条件式 を設定するのなら、フィルタ名は必要ありません。 > 「このウィンドウでは"ApplyFilter/フィルタの実行"アクションを実行できません。」 これは、作り方の問題ではなく、実行方法の問題です。 アクティブなフォームに 対して フィルタを実行するのですが、 マクロをデザインで開いて実行したり、 データベースウィンドウから実行すると その時点で、フォームはアクティブではありませんから (フォーカスは、マクロとか、データベースウィンドウにある) 「このウィンドウでは・・・」 のエラーになります。 フォームを選択しておいて、メニューバー等から、「マクロの実行」 で 実行してください。 あるいは、そのフォームにコマンドボタンを配置し クリック時にマクロを実行するのも良いでしょう。 ここまで上手くいっても、 実際にフィルタは思ったようにはかからないでしょう。 問題は > 次に、Where条件式には > [Forms]![フォーム1]![moji]="文字列1" フィルタは フォームのコントロール にかけるものではなく レコードソースのフィールドに対してかけるものです。 テキストボックス [txtMoji] のコントロールソースが [moji] なら Where条件式は [moji]="文字列1" になります。
お礼
実行してみたら出来ました。 ご親切にありがとうございます。