Microsoft Access 掲示板

クエリの条件が多い

8 コメント
views
4 フォロー

選択クエリの設定について、クエリデザインですがパターンが多くて悩んでいます。

①「条件1~4のいずれかがfalse」
②「条件5に期間設定」
③「条件6が"済"か"途中"か"開始"」

今、①のために抽出条件を4行作っています。それぞれに条件5も設定しています。
新たに③の条件が発生しました。
この場合、①の4行にそれぞれ3行ずつ作って、合計12行になるという認識で正しいでしょうか。

やさぐれないで
作成: 2020/11/12 (木) 13:41:29
通報 ...
1
hiroton 2020/11/12 (木) 15:12:35 修正 7f785@f966d

たぶんそう(12行に)なると思います
が、条件が複雑になるときは、「条件式でフィールドを作る」とすっきりできる場合があります

たとえばクエリデザインで

式1: Not [条件1] Or Not [条件2] Or Not [条件3] Or Not [条件4]

というフィールドを追加します。このクエリを表示すると式1フィールドに「条件1~4のいずれかがfalse」なら「-1」、それ以外なら「0」と表示されます。このフィールドに対して抽出条件を設定すれば「①のために抽出条件を4行作っています。」が1行で済むようになります


ちなみに上記の「-1」「0」はそれぞれ「True」「False」に対応しています。フィールドには内部的な値(数値)が表示されるということですね。なので、抽出条件の部分には「True」と指定してあげれば望みの条件になります

③「条件6が"済"か"途中"か"開始"」

も、抽出にHITさせたいときには「True」となるような条件式のフィールド

フィールド->式2: [条件6]="済" Or [条件6]="途中" Or [条件6]="開始"
抽出条件->True

を作ってあげれば1行で済み、「① AND ② AND ③」の形で抽出条件は1行にできます

2
やさぐれないで 2020/11/13 (金) 08:09:10 f1ed8@e2de4

よく理解できました。場合分けが面倒で、妥協しようかと思ってたところもあったので、かなり助かりました。ありがとうございます!

3
削除されました
4
hatena 2020/11/13 (金) 15:57:09 修正 >> 3

hiroton さんの回答でいいと思いますが、別案を。
In演算子を使うと下記のように記述できます。

フィールド式1: False条件5条件6
抽出条件In ([条件1],[条件2],[条件3],[条件4])Between...And...In ("済","途中","開始")
5
やさぐれないで 2020/11/16 (月) 12:42:58 0029a@1c915 >> 3

In演算子のことを勉強したことがありましたが、すっかり忘れていました。
このような使い方ができるのですね。ありがとうございます!

6
やさぐれないで 2020/11/16 (月) 15:05:08 0029a@1c915 >> 3

条件が追加されました・・
条件1~4はチェックボックスなのですが、それぞれ関連するテキストボックスがあり
それぞれ「「条件1テキストボックス」が空かつ「条件1チェックボックス」がfalse」という条件になりました。
こうなってくると、やはり4行(12行)ですよね。

7
hiroton 2020/11/16 (月) 17:04:36 e49f8@f966d

考え方は同じですよ
論理演算(基礎知識)や演算子の優先順位(システムによりけり)に気を付ける必要はありますが

例えばクエリにフィールドを追加するなら

フィールド|式1: IsNull([条件1テキスト]) And Not [条件1] Or IsNull([条件2テキスト]) And Not [条件2] Or IsNull([条件3テキスト]) And Not [条件3] Or IsNull([条件4テキスト]) And Not [条件4]
抽出条件 |True
8
やさぐれないで 2020/11/17 (火) 21:26:12 0029a@1c915 >> 7

なるほど、そういうことですね。。わからずお恥ずかしい限りです。
優しく教えていただき、ありがとうございました!