1

複数の基準に基づいて結果を返すことができるフォームを作成しようとしています。

FirstNameフィールド、LastNameフィールド、フィールドがありますState

また、ユーザーが基準を入力できるsearchFirst、という名前のテキスト ボックスもあります。searchLastsearchState

検索ボタンをクリックすると、次のコードが実行されます。

Private Sub mySearchQuery_Click()

Dim filter As String

Dim rtFirstName As String
Dim rtLastName As String
Dim rtState As String

rtFirstName = Me.searchFirst.Value
rtLastName = Me.searchLast.Value
rtState = Me.searchState.Value

If Not IsNull(rtFirstName) Then
        If Not IsNull(filter) Then filter = filter & " AND "
        filter = filter & "(FirstName like""*" & rtFirstName & "*"")"
End If


If Not IsNull(rtLastName) Then
        If Not IsNull(filter) Then filter = filter & " AND "
        filter = filter & "(LastName like""*" & rtLastName & "*"")"
End If

If Not IsNull(rtState) Then
        If Not IsNull(filter) Then filter = filter & " AND "
        filter = filter & "(State LIKE""*" & rtState & "*"")"
End If

' Now re-construct the SQL query '
Dim sql As String
sql = "SELECT * FROM MainData"

If Not IsNull(filter) Then
        sql = sql & " WHERE " & filter
End If

Me.RecordSource = sql
'SubForm.Form.RecordSource = sql

End Sub

以下のエラーが表示されます。

実行時エラー '3075': クエリ式 'AND (FirstName like"*tracy*") AND (lastName like"*Smith*") AND (State LIKE"*ga*")' に構文エラー (演算子がありません)。

AND検索クエリの先頭に が含まれている理由がわかりません。

4

1 に答える 1