フィルター処理は、Access データベースに表示するデータのみを表示する便利な方法です。 フィルターを使用して、フォーム、レポート、クエリ、またはデータシート内の特定のレコードを表示したり、レポート、テーブル、またはクエリから特定のレコードのみを印刷することができます。 フィルターを適用すると、基になるオブジェクトのデザインを変更することなく、ビュー内のデータを制限できます。
この記事の内容
フィルターの使い方
フィルターを適用した後に表示されるビューには、選択した値を持つレコードだけが含まれるので、フィルターをクリアするまで、残りのデータは非表示のままです。
注: データシートの列とフォーム内のコントロール、および式にバインドされたレポートでは、フィルター処理はサポートされていません。
フィルターにはいくつかの種類があります。一部のフィルターは簡単に適用および削除できます。 Access には、すべてのビューに組み込まれている一般的なフィルターがいくつか含まれている。 フィルター コマンドを使用できるかどうかは、フィールドの種類と値によって決まります。
たとえば、誕生日が特定の月に該当するユーザーのレコードを表示するには、[ホーム] タブの [並べ替え& フィルター] グループで [誕生日]列をクリックし、[日付フィルター] をクリックし、必要な日付期間を選択します。
1. 使用できるフィルターは、選択した列のデータ型によって異なります。
2. 期間フィルターのすべての日付は 、日付値の日と年の部分を無視します。
このフィルター処理されたビューには、[生年月日] フィールドの月の部分が 4 月に設定 されているレコードだけが 表示されます。
1. 列見出しとレコード ナビゲーター バーのフィルター アイコンは、現在のビューが BirthDate 列でフィルター処理された状態を示します。
2. データシート ビューで、マウスをポイントすると、列見出しの上に、現在のフィルター条件が表示されます。
注: 既にフィルター処理されている列にフィルターを適用すると、前のフィルターが自動的に削除されます。 一度に有効なフィルターは 1 つのみですが、ビューのフィールドごとに異なるフィルターを指定できます。
たとえば、4 月に誕生日を迎える英国に住む連絡先の名前を表示するには、[国または地域] フィールドの [連絡先] テーブルと [生年月日] フィールドをフィルター処理できます。 単一ビューの複数のフィールドをフィルター処理する場合、次のように AND 演算子を使ってフィルターを結合します。
国または地域 = イギリス AND 生年月日の月 = 4 月
フィルター処理されていないビューに戻すには、フィルターを削除します。 フィルターを削除すると、フィルターがビューから一時的に削除されるため、元のフィルター処理されていないビューに切り替えて戻ることができます。
フィルター処理されたビューとフィルター処理されていないビューを切り替えるには、[ホーム] タブの [並べ替え&フィルター] グループで、[フィルターの切り替え] をクリックします。
ビューからフィルターを完全に削除するには、フィルターをクリアします。 フィルターをクリアする方法については、「フィルターをクリアする 」セクションを参照してください。
フィルター設定は、オブジェクトの別のビューに切り替えても、オブジェクトを閉じるまで有効なままです。 つまり、データシート ビューでフォームをフィルター処理した場合、フォーム ビューまたはレイアウト ビューに切り替えてもフィルター設定は有効なままで、フォームを閉じるまで有効なままです。 フィルターが適用された状態でオブジェクトを保存した場合、このフィルターは次にオブジェクトを開いたときに使用可能になります。 フィルターの保存の詳細については、この記事の「フィルターを 保存する」 セクションを参照してください。
フィルターの種類を選択して適用する
データ型に対して、すぐに使用できる複数のフィルターから選択できます。 これらのフィルターは、データシート、フォーム、レポート、レイアウトの各ビューで、メニュー コマンドとして使用できます。 これらのフィルター以外にも、(フォーム フィルターと呼ばれる) フォームに入力して、フォームまたはデータシートをフィルター処理することもできます。
より高い柔軟性が必要である場合や、式の作成に慣れている場合は、[フィルター] ドキュメント タブのオプションを使用して独自のフィルターを作成できます。
次の種類のフィルターから選択します。
一般的なフィルター: 特定の値または値の範囲をフィルター処理します。
選択フィルター: データシート ビューをフィルター処理して、行の選択した値と一致する値を含むテーブル内のすべての行をフィルター処理します。
フォームフィルター: フォームまたはデータシート内の複数のフィールドに対してフィルター処理を行う場合、または特定のレコードを検索する場合。
高度なフィルター: ユーザー設定のフィルター条件を定義するフィルターの種類。
注: どのビューにもフィルター コマンドが表示されない場合は、フォームまたはデータベースの設計者によってフィルター処理が無効化されている可能性があります。 サポートについては、設計者にお問い合わせください。
共通フィルター
OLE オブジェクトのフィールド、および計算された値を表示するフィールドを除き、すべてのフィールドの種類には共通フィルターが用意されています。 使用できるフィルターのリストは、選択されているフィールドのデータ型と値に応じて異なります。
フィルターを適用するフィールドを右クリックします。 複数の列またはコントロールをフィルター処理するには、各列またはコントロールを個別に選択してフィルター処理するか、高度なフィルター オプションを使用する必要があります。 詳細については、この記事の「フォーム フィルター」および「高度なフィルター」を参照してください。
たとえば、[誕生日] フィールドで使用できるフィルターを表示するには、[ホーム] タブの [並べ替えとフィルター] &クリック します。

1. フィルターを適用して特定の値を抽出するには、チェック ボックス リストを使用します。 このリストには、フィールドに現在表示されているすべての値が表示されます。
2. フィルターを適用して値の範囲を抽出するには、いずれかのフィルターをクリックし、目的の値を指定します。 たとえば、現在の日付から年末までに相当する誕生日を表示するには、[次の値の間] をクリックし、[次の値の間] ダイアログ ボックスで適切な開始日と終了日を指定します。 特定の日付に当たっているすべての誕生日を表示するには、日付をクリックすると、その特定の日付に当たっているすべての誕生日が表示されます。
日付フィールドの値は、型固有のフィルターのリストに影響を与えることに注意してください。 日付フィールドの最新の日付値が過去 2 年以内である場合は、長く詳細なフィルター リストが表示されます。 過去 2 年以内の日付がフィールドに含まれていない場合は、短いフィルター リストが表示されます。

注: 型固有のフィルターは、Yes/No 型、OLE オブジェクト型、および添付ファイル型の各フィールドでは使用できません。 メモ型フィールドや、リッチ テキストを含むフィールドでは、値リストを使用できません。
共通フィルターを適用する
-
データシート、フォーム、レポート、またはレイアウトのいずれかのビューで、テーブル、クエリ、フォーム、またはレポートを開きます。
-
ビューにフィルターが適用されていないことを確認します。 レコード セレクター バーで、[フィルター処理なし] アイコンまたは淡色表示されている [フィルターなし] アイコンが表示 されるのを確認します。
ヒント: 特定のオブジェクトのすべてのフィルターを削除するには、[ホーム] タブの [並べ替え& フィルター] グループで [詳細設定] をクリックし、[すべてのフィルターのクリア] をクリック します。
-
フィルター処理する最初のフィールドに対応する列またはコントロール内の任意の場所をクリックし、[ホーム] タブの [並べ替えとフィルター] グループ&クリック します。
一般的なフィルターを適用するには、テキスト (または数値または日付) フィルターをポイントし、必要な フィルターをクリックします。 [次の値に 等しい] や[Between] などのフィルターを実行すると、必要な値を入力するように求めるメッセージが表示されます。
ヒント: *、%、?などの特定の文字は、フィルター テキスト ボックスで指定すると特別な意味を持ちます。 たとえば、* は文字列を表すので、文字列 a* は、リテラル文字列a*だけでなく、aで始まる任意の文字列と一致します。 文字の特別な意味を無視するには、[*] のように角かっこ []で囲みます。 ANSI-89 標準処理 *、?、[、]、!, -,#を特殊文字として使用するデータベース。 ANSI-92 標準の処理 %、_、[、]、^、および - を特殊文字として使用するデータベース。 Access ではどちらの標準でも使用できますが、2 つの標準を混在することはできません (例: ?a*)を特定の式で指定します。
フィールド値に基づいてフィルターを適用するには、フィルターを適用しない値の横にあるチェック ボックスをオフにし 、[OK]をクリックします。
長いリストの値の 1 つ以上をフィルター処理するには、まず [(すべて選択)] チェック ボックスをオフにして、目的の値 を選択します。
テキスト、数値、および日付フィールドの Null 値 (Null 値はデータがないことを示します) をフィルター処理するには、チェック ボックス の一覧で 、[(すべて選択) チェック ボックスをオフにし、(空白 )の横にあるチェック ボックスをオンにします。
選択フィルター
行の値と一致する値を含むテーブル内のすべての行を表示するには、特定の値を選び、[選択] コマンドをクリックしてデータシート ビューをすばやくフィルター処理します。 ドロップダウン リストには、使用可能なフィルター オプションが表示されます。 これらのオプションは、選択した値のデータ型によって異なります。 選択フィルター オプションにアクセスするもう 1 つの方法は、特定のセルを右クリックする方法です。
たとえば、"生年月日" フィールドで値 1967/2/21 が現在選択されている場合は、[ホーム] タブの [並べ替え&フィルター ] グループで [選択] をクリックし、選択コマンドでフィルターを表示し、フィルター オプションを選択します。
コマンドのリストは、選択されている値の量によっても異なります。 たとえば、値に含まれる一部の文字だけを選んだ場合は、選んだフィールドの部分に応じて、異なるコマンド リストが表示されます。
1. フィールド値の最初を使用するフィルター
2. フィールド値の中央を使用するフィルター
3. フィールド値の最後を使用するフィルター
注: 部分的な選択に基づくフィルター処理は、複数値を持つフィールドでは使用できません。 [ 選択]コマンドは添付ファイルには使用できません。
フィルターを削除するには、[ホーム]タブの [並べ替えとフィルター&で、[フィルターの切り替え] をクリックするか、[詳細設定] をクリックして [すべてのフィルターをクリア] をクリックします。
選択範囲に基づくフィルターを適用する
-
データシート、フォーム、レポート、またはレイアウトのいずれかのビューで、テーブル、クエリ、フォーム、またはレポートを開きます。
-
ビューにフィルターが適用されていないことを確認します。 レコード セレクター バーで、[フィルター処理なし] アイコンまたは淡色表示されている [フィルターなし] アイコンが表示 されるのを確認します。
-
フィルターの一部として使用する値が含まれているレコードに移動して、列 (データシート ビューの場合) またはコントロール (フォーム、レポート、またはレイアウト ビューの場合) の内部をクリックします。
部分的な選択に基づいてフィルター処理するには、目的の文字を選び、[ホーム] タブの [並べ替えとフィルター&で、[選択] をクリックし、適用するフィルター をクリックします。
フォーム フィルター
このフィルターは、フォームまたはデータシート内の複数のフィールドにフィルターを適用する場合や、特定のレコードを検索する場合に便利です。 Access では、元のフォームまたはデータシートに似た空のフォームまたはデータシートが作成され、必要な数のフィールドに値を入力できます。 入力が完了すると、指定した値を含むレコードが検索されます。
注: フォーム フィルターを使用して、複数値を持つフィールドや、メモ、ハイパーリンク、Yes/No、または OLE オブジェクトのデータ型のフィールドのフィールド値を指定することはできませんが、レコードセットの他のフィールドの値は指定できます。
たとえば、連絡先の役職が "所有者" で、そのユーザーがポートランドまたはEugeneのいずれかにあるすべての顧客レコードを検索する場合は、[顧客] データシートまたはフォームを開き、[ホーム] タブの [並べ替え& フィルター] グループで [詳細設定]をクリックし、[フォームでフィルター] をクリックします。
最初の値のセットを入力し、データシートまたはフォームの下部にある [ または] タブをクリックして、次の値のセットを入力します。 フィールド値を他のフィールド値とは独立したフィルターとして機能させる場合は、[抽出条件] タブと各 [または] タブに値を入力する必要があります。 各 [または] タブはフィルター値の代替セットを表します。
入力に一致するレコードのみを表示するには: [ホーム ] タブの [並べ替えとフィルター &で、[フィルターの切り替え ] をクリックします。
フォームに入力してフィルターを適用する
-
データシート ビューでテーブルまたはクエリを開くか、フォーム ビューでフォームを開きます。
-
ビューがまだフィルター処理されていないことを確認します。 レコード セレクター バーで、[フィルター処理なし] アイコンまたは淡色表示されている [フィルターなし] アイコンが表示 されるのを確認します。
-
[ホーム ] タブの [並べ替えとフィルター&で、[詳細設定] をクリックし、ショートカット メニューの [フォームフィルター] をクリックします。
-
データシート ビューとフォーム ビューのどちらで作業しているかに応じて、次のいずれかの操作を行います。
データシート ビュー: フィルターを適用する列の最初の行をクリックし、表示される矢印をクリックして、値を選択します。 値を追加するには、データシートの下部にある [または] タブをクリックし、別の 値を選択します。
フォーム ビュー: コントロールに表示される矢印をクリックし、フィルター処理する値を選択します。 他の値を追加するには、フォームの下部にある [または] タブをクリックし 、別の値を選択します。
ヒント: フォームフィルターを使用して、複数値を持つフィールドのフィールド値を指定することはできませんが、レコードセットでは、複数値を持つフィールド以外のフィールドの値を指定できます。
-
フィールドに使用できる値のリストを指定するには、or 演算子を使用します。 たとえば、[市区 町町地] フィールドに "ポートランド" または "オレゴン" を指定して、いずれかの値を含むレコードをフィルター処理します。
-
チェック ボックスやボタンなどのコントロールのステータスに基づいてフィルター処理するには、コントロールが適切な状態になるまでクリックします。 レコードの抽出条件として使用されないようにコントロールを無指定の状態に戻すには、使用不可になるまで (淡色表示されるまで) クリックします。
-
Null 値 (存在しない)、Null 以外の値、空白 (空または "")、または空白以外の値を含むレコードをフィルター処理するには、フィールドに 「IsNull」、"Is Not Null"、"" または "Not ""を入力します。
-
-
たとえば、"国または地域" の値が "米国" で誕生日が 4 月の連絡先の名前のみを表示するために、2 つの代替条件セットを指定する場合は、次の操作を行います。
-
複数の条件セットのいずれかを満たすすべてのレコードを取得するには、最初の条件セットを入力して条件を指定し、[または] タブをクリックし、次の条件セットを入力 します。 フィールド値を他のフィールド値とは独立したフィルターとして動作する場合は、[検索] タブと [または] タブに値を入力する 必要があります。 つまり、[検索] タブと[または] タブは、フィルター値の代替 セットを表します。
-
また、[または] タブにフィールドの条件を追加すると、Access によって別の [または] タブが 作成されます。 これで、複数の "or" 抽出条件を指定できます。 フィルターは、[検索] タブで指定された値、または最初の [または] タブで指定された値のすべて、または 2 番目の [または] タブで指定された値のすべてなど、すべての値を含むレコード を返します。
-
フィルターを削除してすべてのレコードを表示するには、[フィルターの切り替え ] を再度クリックします。
フォームフィルターを変更するには、[詳細設定]をクリックし、[フォームフィルター] を 再度クリックします。 現在のフィルター抽出条件セットが表示されます。
高度なフィルター
場合によっては、高度なフィルターの種類であるフィルターを適用し、フィルター条件を自分で記述する必要がある場合があります。 たとえば、過去 7 日間または過去 6 か月間の日付を含むレコードを検索します。
高度なフィルターを使用するには、式を記述する必要があります。 式は、Excel の数式や、クエリのデザイン時に指定する条件に似ています。
高度なフィルターを使用する例の 1 つは、過去 7 日間に誕生日が発生した連絡先の名前を検索する方法です。 高度なフィルターを適用した後は、国/地域が米国であるユーザーに結果をさらに制限できます。
高度なフィルターを適用する
-
データシート、フォーム、レポート、またはレイアウトのいずれかのビューで、テーブル、クエリ、フォーム、またはレポートを開きます。
-
ビューにフィルターが適用されていないことを確認します。 レコード ナビゲーター バーで [フィルターなし] が淡色表示されている (使用不可である) ことを確認します。 レコード ナビゲーター バーが表示されていない場合は、[ホーム] タブの [並べ替えとフィルター] で [詳細設定] をクリックし、[すべてのフィルターのクリア] をクリックします ([すべてのフィルターのクリア] が淡色表示されている場合、有効なフィルターはありません)。
-
[ホーム] タブの [並べ替えとフィルター&で、[詳細設定] をクリックし、ショートカット メニューの [フィルター /並べ替えの詳細設定] をクリックします。
-
フィルターを適用するフィールドをグリッドに追加します。
-
各フィールドの [抽出条件] 行で、抽出条件を指定します。 抽出条件はまとめて適用され、すべての抽出条件に一致したレコードだけが [抽出条件] 行に表示されます。 代替的な抽出条件を単一のフィールドに対して指定するには、[抽出条件] 行に最初の抽出条件を入力し、[または] 行に 2 番目の抽出条件を入力します。
ヒント:
-
[または] 行のすべての抽出条件のセットが、[抽出条件] 行の代替抽出条件のセットとして適用されます。 両方の抽出条件のセットとして適用する抽出条件については、[抽出条件] 行と [または] 行の両方に入力する必要があります。 フィルターが適用された行を表示するには、[フィルターの切り替え] をクリックします。
-
抽出条件の作成方法を学ぶには、希望に近い結果を生成する共通フィルターまたは選択フィルターを適用します。 次に、フィルターをビューに適用して、[オブジェクトのフィルター] タブを表示する
-
[ドキュメントのフィルター] タブの特別なコマンド
[ドキュメントのフィルター] タブには、2 つの 特別なコマンドがあります。 タブのデザイン グリッドの上の任意の場所を右クリックすると、[クエリから読み込み] コマンドと [クエリとして保存] コマンドがショートカット メニューに表示されます。
[クエリから読み込み] をクリックすると、選択したクエリのデザインがグリッドに読み込まれます。 これにより、クエリ条件をフィルター条件として使用できます。
[クエリとして保存] をクリックすると、フィルター設定を新しいクエリとして保存できます。
フィルターを削除または再適用する
フィルター処理されていないデータ ビューに切り替える場合は、レコード ナビゲーターバーの [フィルター処理] をクリックしてフィルターを削除し、ビュー全体に戻します。
現在のフィルターを削除すると、フィルターはビュー内のすべてのフィールドから一時的に削除されます。 たとえば、まず [国または地域] フィールドと [生年月日] フィールドでフィルターを適用してから、フィルターを削除すると、すべてのレコードが再び表示されます。
最新のフィルターを再適用するには、レコード ナビゲーター バーの [フィルター処理されていない] をクリックします。
フィルターをクリアする
不要になったフィルターはクリアします。 フィルターをクリアすると、ビューからフィルターが削除され、ステータス バーの [フィルター処理なし] をクリックしてもフィルターを再適用できなくなります。 単一のフィールドから単一のフィルターをクリアすることも、ビュー内のすべてのフィールドからすべてのフィルターをクリアすることもできます。
-
1 つのフィールドから 1 つのフィルターをクリアするには、フィルター処理された列またはコントロールを右クリックし、[フィールド名からフィルターをクリア] を クリックします。
-
すべてのフィールドからすべてのフィルターをクリアするには、[ホーム] タブの [並べ替え& フィルター] グループで [詳細設定] をクリックし、ショートカット メニューの [すべてのフィルターをクリア] を クリックします。
フィルターを保存する
フィルターを再び使用する場合は、保存すると便利な場合があります。 テーブル、クエリ、フォーム、またはレポートを閉じるときに有効なフィルター設定は、オブジェクトと共に自動的に保存され、再適用できます。 ただし、既定では、オブジェクトを次回開いたときにフィルター設定が自動的に適用されるわけではありません。
次にテーブル、クエリ、フォーム、またはレポートを開く際に、オブジェクトのプロパティ シートから現在のフィルターが自動的に適用される場合は、オブジェクトの FilterOnLoadプロパティを [はい] に設定します。 FilterOnLoad プロパティは、次にオブジェクトを開く時に適用されます。 この設定を変更するたびに、新しい設定を適用するには、オブジェクトを閉じてもう一度開く必要があります。
注: FilterOnLoad プロパティの設定は、オブジェクトが読み込まれるときにのみ適用されます。 デザイン ビューでオブジェクトにこのプロパティを設定し、別のビューに切り替えると、設定は適用されません。 FilterOnLoad プロパティ設定の変更を有効にするには、オブジェクトを閉じてもう 一度開く必要があります。