文書番号: 941800 - 最終更新日: 2008年9月19日 - リビジョン: 2.1

Access 2007 のフォームでフィルタを実行する場合、抽出結果にフィルタが反映されない

目次

すべて展開する | すべて折りたたむ

現象

Microsoft Office Access 2007 でフィルタを設定したフォームを開く場合、フィルタどおりの抽出結果が表示されないことがあります。フィルタの設定が反映されないケースには、次の 2 パターンがあります。
  • Access 2003 で作成したデータを Access 2007 で使用した場合
  • Access 2007 で新規作成したデータにフィルタを実行した場合、2 度目以降のフィルタの実行が動作しない

回避策

次のいずれかの方法で操作します。

方法 1 : フォームを一旦閉じて開きなおす

フィルタを適用するフォームを一旦閉じて開きなおすことで、フィルタを再適用できます。

: Access 2003 以前のバージョンで検索フォームを使用した場合、フォームの [フィルタ] プロパティに Where 条件式が保存されることがあります。このようなフォームを Access 2007 で開いた場合、フォームの [読み込み時にフィルタを適用] プロパティが [はい] に設定されている場合にはフォーム読み込み時に保存されたフィルタが実行されるため、ユーザー操作による 2 回目以降のフィルタが実行できません。フォーム のフィルタ設定を変更するには、次の手順で操作します。
  1. ナビゲーションウィンドウから [フォーム] をクリックします。
  2. [フォームヘッダー] を右クリックし、[プロパティ] をクリックします。
  3. [プロパティ シート] で次のとおりに設定します。
    • [選択の種類] : フォーム
    • [読み込み時にフィルタを適用] : いいえ
  4. [デザイン] タブの [プロパティ シート] をクリックして閉じます。

方法 2 : マクロの [再クエリ] アクションを使用する

マクロの [フィルタの実行] アクションの後に [再クエリ] アクションを追加することで、フィルタした結果が表示されます。[再クエリ] アクションを追加するには、次の手順で操作します。
  1. ナビゲーションウィンドウから [マクロ] をクリックします。
  2. [デザインビュー] をクリックします。
  3. [フィルタの実行] アクションの下の欄をクリックし、ドロップダウン リストから [再クエリ] をクリックします。
  4. [マクロ 1] ウィンドウを [閉じる] ボタンで閉じます。

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細

問題の再現手順

  1. Access 2007 を起動します。
  2. [空のデータベース] をクリックし、[ファイル名] に任意の名前を入力し、[作成] ボタンをクリックします。
  3. 新規テーブル [テーブル1] が作成されるので、[新しいフィールドの追加] フィールドに以下の文字列をそれぞれ入力し、3 レコードを追加します。

    あああ
    いいい
    ううう


    このとき、[新しいフィールドの追加] フィールド名の表示は、[フィールド1] に変更されます。
  4. ['テーブル1' を閉じる] をクリックし、保存して閉じます。
  5. ナビゲーション ウインドウで [テーブル1] オブジェクトが選択された状態で、[作成] タブの [フォーム] をクリックします。
  6. "テーブル1" フォームのタブを右クリックして [デザイン ビュー] をクリックします。または、[フォーム レイアウト ツール] タブをクリックし、[表示] をポイントし、[デザイン ビュー] をクリックします。
  7. [デザイン] タブの [テキスト ボックス] をクリックし、[テーブル1] フォームの [フォーム ヘッダー] でテキスト ボックスを追加するためドラッグします。
  8. [テキスト ボックス ウィザード] が表示されたら、[完了] をクリックします。
    [テーブル1] フォームの [フォーム ヘッダー] に [テキスト4 : 非連結] というテキスト ボックスが追加されます。
  9. ['テーブル1' を閉じる] をクリックし、フォーム名を フォーム1 に変更して保存します。
  10. [作成] タブをクリックし、[マクロ] をクリックします。
  11. [マクロ1] という名前で新しいタブが作成されるので、以下のとおり設定をします。

    アクション : フィルタの実行
    アクションの引数の設定
    • フィルタ名 : 引数なし
    • Where 条件式 : [フィールド1] Like "*" & [Forms]![フォーム1]![テキスト4] & "*"
    • コントロール名 : 引数なし
  12. ['マクロ1' を閉じる] をクリックし、保存して閉じます。
  13. ナビゲーション ウインドウから手順 9 で保存した [フォーム1] を右クリックし、[デザイン ビュー] をクリックして フォーム1 を開きます。
  14. [デザイン] タブから [ボタン] コントロールをクリックし、[テーブル1] フォームの [フォームヘッダー] でボタン コントロールを追加するためドラッグします。
  15. [コマンド ボタン ウィザード] が表示されるので、[完了] をクリックします。
  16. 手順 15 で追加した [コマンドボタン] を右クリックし、[プロパティ] をクリックしプロパティシートを表示します。
  17. [イベント] タブにある [クリック時] プロパティのプルダウン リストから [マクロ1] をクリックしてプロパティシートを閉じます。
  18. ['フォーム1' を閉じる] をクリックし、変更を保存します。
  19. [フォーム1] を [フォーム ビュー] で開きます。
  20. [テキスト4] テキスト ボックスに と入力し、コマンドボタンをクリックします。
  21. "い" を含むレコードの抽出結果が表示されることを確認します。
  22. ステータス バーにある [フィルタ適用] をクリックしてフィルタを解除します。
  23. [テキスト4] テキストボックスに と入力し、コマンドボタンをクリックします。

結果

フィルタが適用されますが、"う" ではなく、"い" を含むレコードの抽出結果が間違って表示されます。

この資料は以下の製品について記述したものです。
  • Microsoft Office Access 2007
キーワード:?
kbharmony kbtshoot kbexpertiseinter filter KB941800
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"