<検索するためのコードを追加する>

1.  検索フォームのクラスモジュールを開きます。

2.  psフォームを開く プロシージャに, 以下のように赤色部分のコードを追加します。 先頭部分で,strBaba 変数を宣言しています。 なお,紫色のところは,フィルタの表示に使用する回次用の文字列を作るところで,プログラムミスがあったところなので,修正してください。

----------------------------------------------------------------------------------------
Private Sub psフォームを開く(strFormName As String)
On Error GoTo Err_psフォームを開く
'strFormName は, 開くフォーム名。

    '省略

    Dim strKaisaibi As String           '開催日
    Dim strTmpKaisaibi As String
    Dim strRaceNo As String             'レース番号
    Dim strGentei As String             '牝馬戦,ハンデ戦等
    Dim strTmpGentei As String
    Dim strBaba As String               '馬場状態               ← この変数を追加
    

    '省略

    'レース番号
    If Me![リストレース番号].ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me![リストレース番号].ItemsSelected.Count - 1
            If intCount <> 0 Then
                strRaceNo = strRaceNo & " OR "
            End If
            strRaceNo = strRaceNo & "Race.レース番号 = " & Me![リストレース番号].ItemData(Me![リストレース番号].ItemsSelected(intCount))
        Next
    
        If strFilter <> "" Then
            strFilter = "(" & strFilter & ") And (" & strRaceNo & ")"
        Else
            strFilter = strRaceNo
        End If
    End If
    
    'リスト限定
    If Me!リスト限定.ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me!リスト限定.ItemsSelected.Count - 1
            If intCount <> 0 Then
                strGentei = strGentei & " AND "
            End If
            strTmpGentei = Me!リスト限定.ItemData(Me!リスト限定.ItemsSelected(intCount))
            If strTmpGentei = "牝馬戦" Then
                strGentei = strGentei & "((Race.競走記号 LIKE '牝*') OR (Race.競走記号 LIKE '○混 牝*') OR (Race.競走記号 LIKE '○国際 牝*'))"
            ElseIf strTmpGentei = "非牝馬戦" Then
                strGentei = strGentei & "(NOT((Race.競走記号 LIKE '牝*') OR (Race.競走記号 LIKE '○混 牝*') OR (Race.競走記号 LIKE '○国際 牝*')))"
            ElseIf strTmpGentei = "ハンデ戦" Then
                strGentei = strGentei & "(Race.重量種別 = 'ハンデ')"
            ElseIf strTmpGentei = "非ハンデ戦" Then
                strGentei = strGentei & "(Race.重量種別 <> 'ハンデ')"
            End If
        Next
    
        If strFilter <> "" Then
            strFilter = "(" & strFilter & ") And (" & strGentei & ")"
        Else
            strFilter = strGentei
        End If
    End If
    
    '馬場状態
    If Me!lstBaba.ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me!lstBaba.ItemsSelected.Count - 1
            If intCount <> 0 Then
                strBaba = strBaba & " OR "
            End If
            strBaba = strBaba & "[馬場状態] = '" & Me!lstBaba.ItemData(Me!lstBaba.ItemsSelected(intCount)) & "'"
        Next
    
        If strFilter <> "" Then
            strFilter = "(" & strFilter & ") And (" & strBaba & ")"
        Else
            strFilter = strBaba
        End If
    End If
    
    
' フィルタ条件表示用。各変数は再利用するので,初期化します。

    strFilterName = ""
    
    strNen = ""
    If Me![リスト年].ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me![リスト年].ItemsSelected.Count - 1
            If intCount <> 0 Then
                strNen = strNen & " or "
            End If
            strNen = strNen & Me![リスト年].ItemData(Me![リスト年].ItemsSelected(intCount)) & "年"
        Next
    
    '省略

    If Me![リスト回次].ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me![リスト回次].ItemsSelected.Count - 1
            If intCount <> 0 Then
                strKaiji = strKaiji & " or "
            End If
            strKaiji = strKaiji & Me![リスト回次].ItemData(Me![リスト回次].ItemsSelected(intCount)) & "回"
        Next
    
        If strFilterName <> "" Then
            If InStr(1, strKaiji, " or ") > 0 Then
                strFilterName = strFilterName & " And (" & strKaiji & ")"
            Else
                strFilterName = strFilterName & " And " & strKaiji
            End If
        Else
            If InStr(1, strKaiji, " or ") > 0 Then
                strFilterName = "(" & strKaiji & ")"
            Else
                strFilterName = strKaiji
            End If
        End If
    End If
    
    '省略
    
    strGentei = ""
    If Me!リスト限定.ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me!リスト限定.ItemsSelected.Count - 1
            If intCount <> 0 Then
                strGentei = strGentei & " AND "
            End If
            strGentei = strGentei & Me!リスト限定.ItemData(Me!リスト限定.ItemsSelected(intCount))
        Next
    
        If strFilterName <> "" Then
            If InStr(1, strGentei, " or ") > 0 Then
                strFilterName = strFilterName & " And (" & strGentei & ")"
            Else
                strFilterName = strFilterName & " And " & strGentei
            End If
        Else
            If InStr(1, strGentei, " or ") > 0 Then
                strFilterName = "(" & strGentei & ")"
            Else
                strFilterName = strGentei
            End If
        End If
    End If
    
    strBaba = ""
    If Me!lstBaba.ItemsSelected.Count <> 0 Then
        For intCount = 0 To Me!lstBaba.ItemsSelected.Count - 1
            If intCount <> 0 Then
                strBaba = strBaba & " or "
            End If
            strBaba = strBaba & Me!lstBaba.ItemData(Me!lstBaba.ItemsSelected(intCount))
        Next
    
        If strFilterName <> "" Then
            If InStr(1, strBaba, " or ") > 0 Then
                strFilterName = strFilterName & " And (" & strBaba & ")"
            Else
                strFilterName = strFilterName & " And " & strBaba
            End If
        Else
            If InStr(1, strBaba, " or ") > 0 Then
                strFilterName = "(" & strBaba & ")"
            Else
                strFilterName = strBaba
            End If
        End If
    End If
    
    
    gxstrFilter = strFilter
    gxstrOrder = ""
    gxstrFilterName = strFilterName
    
    strCriteria = strFilter

    '省略
    
End Sub
----------------------------------------------------------------------------------------