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