Accessのテーブルやフォーム、レポートでレコードを抽出するには、フィルターボタンや選択フィルターを使います。
標準で使用できる抽出条件は、フィールドのデータ型によっても異なりますが、さまざまな抽出を行うことができます。
そして、その抽出条件をクエリとして保存できます。
頻繁に利用する抽出条件はクエリとして保存しておくと便利です。
また、クエリの抽出条件の書き方に悩んだ時も重宝します。
参考ここでは[ドキュメントウィンドウオプション]で[タブ付きドキュメント]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
フィルターボタンを使ってレコードの抽出
Accessのテーブルでフィルターを実行してレコードを抽出するには、データシートビューを使います。
テーブルをデータシートビューで開くと、各フィールドにフィルターボタンが表示されます。
このフィルターボタンをクリックして、一覧から抽出条件を設定できます。
もしくは、レコードの抽出を行いたいフィールドを選択して、[ホーム]タブの[並べ替えとフィルター]グループの[フィルター]ボタンをクリックします。
一覧のチェックボックスをオンにしたり、オフにすることでレコードを簡単に抽出できます。
たとえば、[すべて選択]のチェックボックスをオフにして、すべての選択をオフにした後、[WTB-101]と[WTB-102]のチェックボックスをオンにして[OK]ボタンをクリックします。
以下のようにレコードを抽出できます。
参考このまま他のフィールドでレコードを抽出することもできます。
レポートでのフィルターの操作も同じですが、以下の記事では詳細に解説しています。
-
レポートビューでフィルターをかけてレコードを抽出して印刷
Accessのレポートでフィルターをかけて、一部の情報のみを印刷したいことがあると思います。 レポートのフィルターを実行するには、レポートビ ...
フィルターボタンをクリックしてもリストが表示されない場合
データシートビューでフィルターボタンをクリックしても、リストが表示されない場合があります。
レコード数が1000を超えている場合は表示されないことがあります。これは、[Accessのオプション]で設定を変更すると解決できます。
[ファイル]タブをクリックした後、[オプション]をクリックして、[Accessのオプション]ダイアログボックスを表示します。
または、キーボードから[Alt]→[F]→[T]の順に押して表示します。これは、Word、Excel、PowerPointなどでも使用できます。
[現在のデータベース]の[レコード数が次の値を超えるとリストを表示しない]が既定では[1,000]になっていますので、この値をレコード数より大きい数値に変更します。
以下の記事でも解説しています。
テキストフィルター/日付フィルター/数値フィルター
また、フィールドのデータ型によって異なりますが、より詳細な抽出を行うことができます。
テキストフィルターをポイントすると、サブメニューにフィルターの抽出条件が表示されます。
- 指定の値に等しい
- 指定の値に等しくない
- 指定の値で始まる
- 指定の値で始まらない
- 指定の値を含む
- 指定の値を含まない
- 指定の値で終わる
- 指定の値で終わらない
抽出条件に直接入力して、レコードを抽出します。
以下は、[指定の値を含む]をクリックして、[ユーザー設定フィルター]のテキストボックスに[缶詰]と入力しています。
[OK]ボタンをクリックします。
結果は、下のように[缶詰]が含まれる商品名が抽出されます。
[テキストフィルター]は、ショートカットメニューにも表示されます。
数値フィルターや日付フィルターの場合は、以下のようになります。
数値フィルター
- 指定の値に等しい
- 指定の値に等しくない
- 指定の値より小さい
- 指定の値より大きい
- 指定の範囲内
日付フィルター
日付フィルターが非常に多くの条件が用意されています。
- 指定の値に等しい
- 指定の値に等しくない
- 指定の値より小さい
- 指定の値より大きい
- 指定の範囲内
- 明日、今日、昨日
- 来週、今週、先週
- 来四半期、今四半期、全四半期
- 来年、今年、今年の初めから今日まで、昨年
- 過去、未来
- 期間内のすべての日付
[期間内のすべての日付]には、さらにサブメニューがあります。
フィルターの解除
フィルターを解除するには、[ホーム]タブの[並べ替えとフィルター]グループの[フィルターの解除]ボタンをクリックします。
[フィルターの実行]ボタンは、フィルター実行時は[フィルターの解除]ボタンになります。
複数のフィールドで設定していても、すべてのフィルターが解除されます。
または、画面下にある[フィルターの適用]ボタンをクリックします。
[フィルターの実行]と[フィルターの適用]のボタンの色が濃くなっている場合は、フィルターが適用されています。
参考フィルターを解除しても、設定した条件はテーブルのプロパティに保存されていますので、再度[フィルターの実行]ボタンをクリックすると直前のフィルターを実行できます。
フィルターのクリア(抽出条件の削除)
フィールドに設定したフィルターの条件をクリアする方法です。
抽出条件をクリアすると、[ホーム]タブの[並べ替えとフィルター]グループの[フィルターの実行]ボタンをクリックしても、レコードの抽出は行うことはできません。
特定のフィールドのフィルターをクリア
特定のフィールドのフィルターをクリアするには、抽出条件をクリアしたいフィールドのフィルターボタンをクリックして、[〇〇のフィルターのクリア]をクリックします。
または、レコードの抽出を行いたいフィールドを選択して、[ホーム]タブの[並べ替えとフィルター]グループの[フィルター]ボタンをクリックします。同じく[〇〇のフィルターのクリア]をクリックします。
すべてのフィルターをクリア
すべてのフィルターをクリアするには、[ホーム]タブの[並べ替えとフィルター]グループの[詳細設定]から[すべてのフィルターのクリア]をクリックします。
[選択]フィルターでデータを抽出条件としてレコードを抽出
[選択]フィルターを使用すると、表示されているデータを抽出条件として抽出できます。
[選択]フィルターで設定できる条件は1つだけです。
複数の条件を設定する場合は、抽出結果に対して、さらに条件を追加します。
また、セルにカーソルがある場合は、セルの値が抽出条件になりますが、データの一部を選択すると、選択した部分が抽出条件になります。
セルにカーソルがある状態での選択フィルター条件
以下はセルにカーソルがある状態で[ホーム]タブの[並べ替えとフィルター]グループの[選択]ボタンをクリックします。
- "〇〇"に等しい
- "〇〇"に等しくない
- "〇〇"を含む
- "〇〇"を含まない
セル内のデータを部分的に選択した状態の選択フィルターの条件
セル内の文字列のお尻の部分を選択すると、抽出条件は以下のようになります。
- "〇〇"を含む
- "〇〇"を含まない
- "〇〇"で終わる
- "〇〇"で終わらない
セルの文字列の先頭文字列を選択した場合は、以下のようになります。
- "〇〇"で始まる
- "〇〇"で始まらない
- "〇〇"を含む
- "〇〇"を含まない
セルの文字列の中を選択すると、下のような抽出条件になります。
- "〇〇"を含む
- "〇〇"を含まない
選択フィルターは、右クリックのショートカットメニューにも表示されます。
フォームやレポートでもフィルタリング
[選択]フィルターは、フォームやレポートでも実行できます。
以下は、レポートで操作しています。
ショートカットメニューにも表示されます。テーブルと同じようにレコードを抽出できます。
以下は、フォームで操作しています。
読み込み時にフィルターを適用
フィルター実行後、再度 オブジェクトを開いたときに、直前に設定したフィルターで表示することができます。
プロパティの[読み込み時にフィルターを適用]を[はい]にします。既定は[いいえ]です。
[読み込み時に並べ替えを適用]は既定が[はい]です。
以下はテーブルのプロパティです。
このプロパティの設定は、フォームやレポートのプロパティにもあります。
以下はフォームのプロパティです。
以下はレポートのプロパティです。
参考以下の記事でも解説しています。以下の記事では、[ホーム]タブの[フィルター]ボタンを使用して解説しています。
-
フォームを開く時に前回のフィルターの状態を保ったまま開くには
Accessのフォームでフィルター機能を使ってレコードの抽出を行い、その状態のまま閉じて、次回 フォームを開く時に同じフィルターの状態のまま ...
抽出条件を繰り返し使用するなら[クエリとして保存]
フィルターボタンや、選択フィルターで抽出した条件は、直前に実行した条件のみ保存できますが、その条件をクエリとして保存しておくと、繰り返し実行できるようになります。
たとえば、[商品名]フィールドで["缶詰"で終わる]でレコードを抽出します。
結果は以下のようになります。
そして、[ホーム]タブの[並べ替えとフィルター]グループにある[詳細設定]をクリックして、[フィルター/並べ替えの編集]をクリックします。
すると、クエリが表示されます。抽出条件には、選択フィルターの条件が表示されています。
ここで、抽出条件の内容を編集できます。抽出条件の書き方に悩んだ時にも役立ちます。
クエリを作成しても思い通りの抽出ができない場合、この方法で助かることは多いです。
[詳細設定]から[クエリとして保存]をクリックします。
複数の条件で抽出した場合も保存できます。
または、クエリの何もない箇所で右クリックしてショートカットメニューから[クエリとして保存]をクリックします。
クエリ名を入力して、[OK]ボタンをクリックします。
いつでも、ナビゲーションウィンドウのクエリをダブルクリックで実行できます。
データシートビューなどで行った並べ替えの設定も、クエリとして保存できます。
参考クエリのデザインビューで1つのフィールドしか表示されていませんが、クエリを実行するとすべてのフィールドが表示されます。これは、保存したクエリを[SQLビュー]に切り替えてみると分かります。
SELECTの後ろに*が入力されています。
一度[SQLビュー]で表示して閉じると、次回も[SQLビュー]で表示されることがあります。[デザインビュー]に切り替えて閉じてください。
クエリの抽出条件や、SQLビューの文字が見づらい場合は、フォントサイズを大きくすると見やすくなります。
-
クエリデザインとデータシートビューのフォントサイズを変更
Accessのクエリデザインとデータシートビューのフォントサイズを変更する方法です。 大きく表示したいと思う方も多いのではないでしょうか?オ ...
Microsoft 365のAccessのSQLビューは、インテリセンス機能が強化されています。
フィールドの空白以外のレコードをクエリで抽出したい
レポートを印刷するときに1つのフィールドに空白があるレコードは省いて印刷したいとします。
以下のように[商品名]フィールドが空白になっているレコードがあります。
この場合、空白のセルにカーソルを置いて[選択]から[空白に等しくない]を選択します。
商品名が空白ではないレコードが抽出できます。
[ホーム]タブの[並べ替えとフィルター]グループにある[詳細設定]をクリックして、[フィルター/並べ替えの編集]をクリックします。
抽出条件には、以下のように記されています。
Is Not Null And <>""
クエリに名前を付けて保存します。ここでは[Q空白なし]にしています。
レポートのプロパティを開いて、レコードソースを[Q空白なし]にすれば、商品名が空白のレコードは省いて印刷できます。
参考作成したクエリをコマンドボタンで実行する方法については、以下の記事で解説しています。
-
作成したクエリをコマンドボタンに登録して実行する
Accessでクエリを作成した後、コマンドボタンをクリックしてクエリを実行するための方法です。 コマンドボタンウィザードを使用する方法と、マ ...
複数の抽出条件を組み合わせた複雑な抽出は[フォームフィルター]で
[詳細設定]の中にある[フォームフィルター]を使用すると、AND条件やOR条件を組み合わせた条件も指定できます。
AND条件は、指定したすべての条件に合致するレコードの抽出、OR条件は、指定した複数の条件のうちいずれかの条件に合致するレコードの抽出になります。
この[フォームフィルター]の抽出条件もクエリとして保存することができます。
テーブルとフォームで操作できますが、ここではテーブルで解説します。
テーブルをデータシートビューで開き、[ホーム]タブの[並べ替えとフィルター]グループの[詳細設定]から[フォームフィルター]をクリックします。
[フォームフィルター]が表示されます。
[価格]フィールドのプルダウンから[260]を選択します。
次に[または]をクリックします。
今度は[出荷日]フィールドのプルダウンから[2010/11/02]を選択します。
[フィルターの実行]をクリックします。
以下のように[価格]が[\260]、または[出荷日]が[2010/11/02]のレコードが抽出されます。
[詳細設定]の[フィルター/並べ替えの編集]をクリックします。
クエリのデザインビューが表示されます。抽出条件は、以下のように記されています。
クエリとして保存することもできます。
クエリの抽出条件の記述
主なテキスト型の条件の記述方法です。文字列の指定は["](ダブルクォーテーション)で囲みます。
記述例 | 意味 |
"●" | 完全一致 |
Not "●" | 一致しない |
Like "●*" | 指定した文字列から始まる |
Not Like "●*" | 指定した文字列で始まらない |
Like "*●*" | 指定した文字列を含む |
Not Like "*●*" | 指定した文字列を含まない |
Like "*●" | 指定した文字列で終わる |
Not Like "*●" | 指定した文字列で終わらない |
クエリの抽出条件の例 - Microsoft サポート(Microsoft)
比較演算子は以下のようになります。
比較演算子 | 読み | 意味 |
< | 小なり記号 | ~より小さい |
> | 大なり記号 | ~より大きい |
<= | より小か等しい記号 | ~以下 |
>= | より大か等しい記号 | ~以上 |
<> | 不等号 | 等しくない |
参考フォームのテキストボックスの値を参照して抽出したい場合の方法については、以下の記事で解説しています。
-
クエリの抽出条件にテキストボックスの値を設定してレコードを抽出
Accessのクエリでレコードを抽出する方法です。 クエリの抽出条件には、フォームのテキストボックスの値を指定することができます。 また、ク ...
フォームのIDを参照する方法も解説しています。
-
帳票フォームのボタンをクリックして同じIDの単票フォームを起動する
Accessで、帳票フォームから同じIDの単票フォームをボタンで起動する方法を解説します。 横に長い情報より、1つのウィンドウで表示したいと ...