ray88’s diary

お仕事で困ったとき用の自分用の覚書

検索フォームでサブフォームのデータを検索する際のクエリ(あいまい検索等)

■以下のような検索フォームで検索する際、サブフォームの元となるクエリの設定の

 仕方 基本的な処理を覚書

f:id:ray88:20200105220024p:plain

f:id:ray88:20200105220114p:plain

■IDの抽出条件(オートナンバー型ですが、以下の式で正常に動作)

 Like IIf(IsNull([Forms]![日にち検索]![ID]),"*",[Forms]![日にち検索]![ID])

■タイトルの抽出条件

 Like IIf(IsNull([Forms]![日にち検索]![タイトル]),"*","*" & [Forms]![日にち検索]![タイトル] & "*")

■著者の抽出条件

 Like IIf(IsNull([Forms]![日にち検索]![著者]),"*","*" & [Forms]![日にち検索]![著者] & "*")

■出版社の抽出条件

 Like IIf(IsNull([Forms]![日にち検索]![出版社]),"*","*" & [Forms]![日にち検索]![出版社] & "*")

■価格の抽出条件(空欄の場合最低価格は0円、最高価格は100万で設定)

 Between Nz([Forms]![日にち検索]![価格From],0) And Nz([Forms]![日にち検索]![価格To],1000000)

開始日の抽出条件(空欄の場合はありえないほど過去と未来の日付で設定)

 Between Nz([Forms]![日にち検索]![開始日From],#1999/01/01#) And Nz([Forms]![日にち検索]![開始日To],#9999/12/31#)

■終了日の抽出条件(空欄の場合はありえないほど過去と未来の日付で設定)

 Between Nz([Forms]![日にち検索]![終了日From],#1999/01/01#) And Nz([Forms]![日にち検索]![終了日To],#9999/12/31#)

■キャンセルフラグの抽出条件

 IIf([Forms]![日にち検索]![cmb_キャンセルフラグ]="全て",([開始日終了日].[キャンセルフラグ])=-1 Or ([開始日終了日].[キャンセルフラグ])=1,IIf([Forms]![日にち検索]![cmb_キャンセルフラグ]="チェックあり",-1,0))