次の方法で共有

フォーム入力で1つのフィールドに複数抽出条件を指定する

Anonymous
2016-09-23T09:45:01+00:00

m.k_693 と申します。

クエリに下記の抽出条件横並びにいれました。

・「日付」フィールド

  Between [forms]![画面]![日付始] And [forms]![画面]![日付至]

・「所属」フィールド

  Like IIf(IsNull([forms]![画面]![所属①]),"*","*" & [forms]![画面]![所属①] & "*") Or Like IIf(IsNull([forms]![画面]![所属②]),"*","*" & [forms]![画面]![所属②] & "*")

・「発生場所」フィールド

  Like IIf(IsNull([forms]![画面]![発生場所①]),"*","*" & [forms]![画面]![発生場所①] & "*") Or Like IIf(IsNull([forms]![画面]![発生場所②]),"*","*" & [forms]![画面]![発生場所②] & "*")

そして上記日付条件の範囲内で1フィールドに複数検索ができるようにフォームへ

クエリ「所属」フィールドのための「所属①」と「所属②」のリストボックスを2つ

クエリ「発生場所」フィールドのための「発生場所①」と「発生場所②」のリストボックスを2つ

作り、上記のようにクエリへ横並びに抽出条件を入れました。

フォーム内の画面、「日付始」「日付至」「所属①」「所属②」「発生場所①」「発生場所②」

が全部埋まっていたら、指定した日付内で指定した「所属」全部と「発生場所」全部が抽出されます。

しかし「所属①」「所属②」「発生場所①」「発生場所②」すべてフォームに入力しておかないと、

日付の抽出のみとなってしまいます。

例えば「所属①」「発生場所①」しか入力しなくてもうまく抽出できる方法をご教示願います。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2016-09-24T16:21:45+00:00

・「日付」フィールドは下記の式で。

Between Nz([forms]![画面]![日付始],#1900/01/01#) And Nz([forms]![画面]![日付至],#2100/12/30#)

・「所属」フィールドはIIfは必要ないです。

Like "*" & [forms]![画面]![所属①] & "*" Or Like "*" & [forms]![画面]![所属②] & "*"

・「発生場所」フィールドも同じく。

Like "*" & [forms]![画面]![発生場所①] & "*" Or Like "*" & [forms]![画面]![発生場所②] & "*"

VBAが使えるなら、一つのフィールドに複数条件がある場合、下記で紹介している方法を使うと、

テキストボックスは一つで、空白区切りで入力したキーワードで抽出できます。

AccessでWEB検索のように曖昧検索したい - hatena chips

さらに複数フィールドを対象に複数キーワードや範囲で抽出条件を設定したい場合は、下記が参考になるでしょう。

複数条件の抽出フォームの設計 その1 - hatena chips

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2016-09-24T23:27:14+00:00

    回答ありがとうございます。

    これも明日職場で試してみます。

    かなり行き詰まり、もう自分もこれで限界かな?と思ってましたが、

    回答を下さる方がいて、頑張ろうという励みになりました。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません