No.014
基本的な抽出条件の書き方について
2003/2007/2010/2013/2016
抽出条件の書き方は基本中の基本です。
なるべくたくさんご案内しますので、今回の内容は是非とも覚えてください。
条件はクエリのデザイン ビュー下半分のデザイン グリッド、抽出を行うフィールドの[抽出条件]セル以下に設定します。
<完全一致条件>
レコードの値と完全一致の条件を設定する場合は、抽出条件にそのまま設定します。
左側に入力データと()内は確定された設定です。
- 123 …数値系フィールド「123」のレコードを抽出
- "ABC" …テキスト系フィールド「ABC」のレコードを抽出
- #2030/01/01# …日付フィールド「2030/01/01」のレコードを抽出
- Null(Is Null) …Null値のレコードを抽出
- "" …Null値ではない空白(長さ 0 の文字列)のレコードを抽出
- Yes または -1 または True または On …Yes/No型フィールド「Yes」のレコードを抽出
- No または 0 または False または Off …Yes/No型フィールド「No」のレコードを抽出
値が文字列である場合は前後にダブルクォーテーション、日付時刻の場合は前後に#を指定しますが、クエリのデザイン ビューなどで入力するときは、自動的に表示されます。
<部分一致条件(テキスト)>
テキスト系フィールドの部分一致条件、つまりあいまい条件での抽出は、ワイルドカードを使用して条件を設定します。
ワイルドカードは半角アスタリスク(*)と半角疑問符(?)を必ず覚えておきましょう。
アスタリスクは0文字以上任意の文字列、疑問符は1文字に当てられます。
ワイルドカードを使用して条件設定を行うと、Like演算子が先頭に設定されます。
では、ワイルドカードの基本的な使用例をいくつかご案内します。
入力データと()内は確定された設定です。
- "A*"(Like "A*") …「A」から始まるレコードを抽出
- "*A"(Like "*A") …「A」から終了するレコードを抽出
- "*A*"(Like "*A*") …「A」を含むレコードを抽出
- "A??"(Like "A??") …「A」から始まり全体が3文字のレコードを抽出
- "*A*B*"(Like "*A*B*") …「A」そして「B」を含むレコードを抽出
ワイルドカードを詳しく、また上記のほかに、角かっこなどを使用する抽出方法があります。これは別のヘルプ「ワイルドカードや数式を使用した高度な抽出」をご参照ください。
<Not条件>
Not条件は否定の条件で、「でない」条件のことです。
通常の条件の前に、Not演算子、または不等号「<>」を入力します。
- <>123 …「123」以外のレコードを抽出
- Not "ABC" …「ABC」でないレコードを抽出
- Not #2030/01/01# …「2030/01/01」以外のレコードを抽出
- <>"*A*" …「A」を含まないレコードを抽出
- Not "*A*"(Not Like "*A*") …「A」を含まないレコードを抽出
- Not Null(Is Not Null) …Null値でないレコードを抽出
<OR条件>
OR条件は、複数の条件のいずれかが1つでも満たすレコードを抽出するケースで、「または」条件のことです。
OR条件の場合の抽出条件の設定は違う行に入力します。
1つのフィールドで複数の条件がOR条件である場合は、Or演算子を使用することができます。
上図上の例は、[F1]フィールドが「A」または[F3]フィールドが「200」の条件、
下の例は、[F1]フィールドが「Aから始まる」または「Bから始まる」条件設定です。
<AND条件>
AND条件は、複数の条件のすべてを満たすレコードを抽出するケースで、「かつ」条件のことです。
AND条件の場合の抽出条件の設定は違う行に入力します。
1つのフィールドで複数の条件がAnd条件である場合は、And演算子を使用することができます。
上図上の例は、[F1]フィールドが「A」かつ[F3]フィールドが「200」の条件、
下の例は、[F3]フィールドが「100以上」かつ「200以下」、つまり「100から200まで」の条件設定です。
<大小の条件>
数値系データの以上以下、より大きい小さいといった条件設定です。
Excelと同じように設定します。
- >123 …「123」より大きいレコードを抽出
- <123 …「123」より小さいレコードを抽出
- >=#2030/01/01# …「2030/01/01」以上(以降)のレコードを抽出
- <=#2030/01/01# …「2030/01/01」以下(以前)のレコードを抽出
<範囲の条件>
数値系データで範囲の条件、どこからどこまでの条件設定です。
Between~And演算子を使用する方法と大なり小なりを使用する方法との2つの設定がありますます。
例えば数値データで「100から200まで」という条件は、「100以上 かつ 200以下」と同義であり、次のような設定となります。
どちらでも同じ結果です。
- Between 100 And 200
- >=100 And <=200
また、日付データで「2030/01/01」以上(以降)かつ「2030/03/31」以下(以前)のレコードを抽出する場合も同様に設定します。
- Between #2030/01/01# And #2030/03/31#
- >=#2030/01/01# And <=#2030/03/31#
演算子の間は必ず半角スペースを入れます。でないと、エラーを言われますのでご注意ください。