0

一部のナビゲーション ボタンがサブフォームにフィルターを適用するだけのナビゲーション フォームを作成しています。問題は、現在、各オプションが排他的であることです。つまり、支店または役職でスタッフを選択できます。一度に複数のフィルターを適用できるように、オプションを非排他的にするにはどうすればよいですか?

追加するだけで編集します。私は VBA の知識がないので、グラフィカル インターフェイスとマクロを使用してこれを実行しようとしています。これらのツールを使用してもうまくいかない場合は、別の解決策を見つけます。

4

2 に答える 2

1

このソリューションには、適度な量の VBA が必要です (VBA を必要としないソリューションは考えられません)。ユーザーの選択をモジュール レベルの変数に格納し、マスターApplyFiltersサブルーチンを使用してフィルターを適用します。

たとえば、各チェックボックスに AfterUpdate イベントを与えます。このイベントは次の 2 つのことを行います。

  1. ユーザーの選択でモジュールレベル変数を設定します
  2. ApplyFiltersサブを開始します

ユーザーの選択はすべてモジュール レベルの変数に保存されるため、ApplyFiltersはそれらをすべて見ることができます。そうなる:

  1. すべてのモジュール レベル変数を取得し、マスター文字列を作成します (ヒント、プレースホルダーが必要な場合は、を使用します1=1) 。
  2. その文字列をサブフォームのフィルターとして適用します。

その他の注意事項: メイン フォームからサブフォームのコントロールにアクセスするのは簡単です。サブフォームのフィルターを文字列 NewFilter に変更するには、次のことを試してください。

 Forms!MyMainFormsName!MySubFormsName.Filter=NewFilter
于 2013-04-17T19:42:26.260 に答える