|
>strTemp = "Nz(項番, '') LIKE '*" & テキスト1 & "*'" & _
> " AND Nz(お客様名, '') LIKE '*" & テキスト2 & "*'" & _
> " AND Nz(住所, '') LIKE '*" & テキスト3 & "*'" & _
> " AND Nz(電話番号, '') LIKE '*" & テキスト4 & "*'" & _
> " AND Nz(郵便番号, '') LIKE '*" & テキスト5 & "*'" & _
> " AND Nz(対応者1次, '') LIKE '*" & テキスト6 & "*'" & _
> " AND Nz(対応日1次, '') LIKE '*" & テキスト7 & "*'" & _
> " AND Nz(対応者2次, '') LIKE '*" & テキスト8 & "*'" & _
> " AND Nz(対応日2次, '') LIKE '*" & テキスト9 & "*'"
>
> Me!サブクエリのサブフォーム.Form.Filter = strTemp
> Me!サブクエリのサブフォーム.Form.FilterOn = True
>
>’今回作成した検索
> Select Case Me.グループ
> Case 1: Me.サブクエリのサブフォーム.Form.Filter = "進捗='OK'"
> Case 2: Me.サブクエリのサブフォーム.Form.Filter = "進捗='NO'"
> Case 3: Me.サブクエリのサブフォーム.Form.Filter = "進捗='未定'"
> Case 4: Me.サブクエリのサブフォーム.Form.Filter = "進捗='その他'"
> Case 5: Me.サブクエリのサブフォーム.Form.Filter = "項番 is not null" ←IDを全て表示
> Case 6: Me.サブクエリのサブフォーム.Form.Filter = "(進捗 ='OK' Or 進捗 = 'NG') AND 対応日2次 is null"
> End Select
オプショングループにおいてオプション値が2であるオプションボタンが選択されている場合に
このコードを実行すれば、
「進捗='NO'」という抽出条件のみでフィルタがかかります。
「テキスト1」から「テキスト9」までのテキストボックスによる抽出条件は、
フィルタに全く反映されません。
その理由ですが、
「Me!サブクエリのサブフォーム.Form.Filter = strTemp」のコードにより、
(サブ)フォームのFilterプロパティには、テキストボックスによる抽出条件がセットされますが、
「Case 2: Me.サブクエリのサブフォーム.Form.Filter = "進捗='NO'"」が実行されることにより、
(サブ)フォームのFilterプロパティの値が「進捗='NO'」に書き替えられるからです。
>テキスト用の検索と
>グループ用の検索をどの様に組み合わせたらいいのか解りません
テキストボックス・コントロールによる抽出条件と「グループ」コントロールによる抽出条件を
合体させた抽出条件の文字列を作り、それを(サブ)フォームのFilterプロパティへの代入します。
具体的には、例えば、
>Case 3: Me.サブクエリのサブフォーム.Form.Filter = "進捗='未定'"
を、
Case 3
strTemp = strTemp & " OR 進捗='未定'"
としてやれば、
テキストボックス・コントロールによる抽出条件と「グループ」コントロールによる抽出条件を
合体させた抽出条件の文字列がstrTempに格納されます。
抽出条件文字列が完成した後で初めて、(サブ)フォームのFilterプロパティにstrTempを代入します。
ところで、Select Case 文でオプショングループのオプション値を使っているところからすると、
オプションボタンの複数選択は諦めたんですかね。
|
|