Results 1 to 2 of 2
  1. #1
    wgroenewald is offline Novice
    Windows 7 32bit Access 2010 32bit
    Join Date
    Jan 2012
    Posts
    8

    Search mulitple fields


    Hi there

    I have a form that I'm using to search a table, and its working pretty well.
    Each field on the table has its own search field and I hit the search button and off it goes.

    What I would like to do though is create one search text box that searches multiple fields on the table.

    This is the current code:

    Code:
     Option Compare Database
    Option Explicit
    Private Sub Clear_Click()
        DoCmd.Close
        DoCmd.OpenForm "Search Issues"
    End Sub
    Private Sub Search_Click()
        Const cInvalidDateError As String = "You have entered an invalid date."
        Dim strWhere As String
        Dim strError As String
        
        strWhere = "1=1"
         
        ' If Assigned To
        If Not IsNull(Me.AssignedTo) Then
            'Create Predicate
            strWhere = strWhere & " AND " & "Issues.[Assigned To] = " & Me.AssignedTo & ""
        End If
        
        ' If Opened By
        If Not IsNull(Me.OpenedBy) Then
            'Add the predicate
            strWhere = strWhere & " AND " & "Issues.[Opened By] = " & Me.OpenedBy & ""
        End If
        
        ' If Status
        If Nz(Me.Status) <> "" Then
            'Add it to the predicate - exact match
            strWhere = strWhere & " AND " & "Issues.Status = '" & Me.Status & "'"
        End If
        
         ' If Category
        If Nz(Me.Category) <> "" Then
            'Add it to the predicate - exact match
            strWhere = strWhere & " AND " & "Issues.Category = '" & Me.Category & "'"
        End If
        
         ' If Priority
        If Nz(Me.Priority) <> "" Then
            'Add it to the predicate - exact match
            strWhere = strWhere & " AND " & "Issues.Priority = '" & Me.Priority & "'"
        End If
          
        ' If Opened Date From
        If IsDate(Me.OpenedDateFrom) Then
            ' Add it to the predicate - exact
            strWhere = strWhere & " AND " & "Issues.[Opened Date] >= " & GetDateFilter(Me.OpenedDateFrom)
        ElseIf Nz(Me.OpenedDateFrom) <> "" Then
            strError = cInvalidDateError
        End If
        
        ' If Opened Date To
        If IsDate(Me.OpenedDateTo) Then
            ' Add it to the predicate - exact
            strWhere = strWhere & " AND " & "Issues.[Opened Date] <= " & GetDateFilter(Me.OpenedDateTo)
        ElseIf Nz(Me.OpenedDateTo) <> "" Then
            strError = cInvalidDateError
        End If
        
        ' If Due Date From
        If IsDate(Me.DueDateFrom) Then
            ' Add it to the predicate - exact
            strWhere = strWhere & " AND " & "Issues.[Due Date] >= " & GetDateFilter(Me.DueDateFrom)
        ElseIf Nz(Me.DueDateFrom) <> "" Then
            strError = cInvalidDateError
        End If
        
         ' If Due Date To
        If IsDate(Me.DueDateTo) Then
            ' Add it to the predicate - exact
            strWhere = strWhere & " AND " & "Issues.[Due Date] <= " & GetDateFilter(Me.DueDateTo)
        ElseIf Nz(Me.DueDateTo) <> "" Then
            strError = cInvalidDateError
        End If
        
        ' If Title
        If Nz(Me.Title) <> "" Then
            ' Add it to the predicate - match on leading characters
            strWhere = strWhere & " AND " & "Issues.Title Like '*" & Me.Title & "*'"
        End If
        
            ' If Comments
        If Nz(Me.CommentSearch) <> "" Then
            ' Add it to the predicate - match on leading characters
            strWhere = strWhere & " AND " & "Issues.Comment Like '*" & Me.CommentSearch & "*'"
        End If
      
        
        If strError <> "" Then
            MsgBox strError
        Else
            'DoCmd.OpenForm "Browse Issues", acFormDS, , strWhere, acFormEdit, acWindowNormal
            If Not Me.FormFooter.Visible Then
                Me.FormFooter.Visible = True
                DoCmd.MoveSize Height:=Me.WindowHeight + Me.FormFooter.Height
            End If
            Me.Browse_All_Issues.Form.Filter = strWhere
            Me.Browse_All_Issues.Form.FilterOn = True
        End If
    End Sub
    Function GetDateFilter(dtDate As Date) As String
        ' Date filters must be in MM/DD/YYYY format
        GetDateFilter = "#" & Format(dtDate, "MM/DD/YYYY hh:mm:ss AM/PM") & "#"
    End Function
    I've already created the new search text box called txtMultiple, but how do I change the above code to make it search Issues.Comment, Issues.Title, Issues.Category?

    I would appreciate any assistance.

    Many thanks.

  2. #2
    orange's Avatar
    orange is online now Moderator
    Windows XP Access 2003
    Join Date
    Sep 2009
    Location
    Ottawa, Ontario, Canada; West Palm Beach FL
    Posts
    16,726

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 1
    Last Post: 01-30-2012, 12:12 PM
  2. Fields get saved in DB when I search!
    By accessnewb in forum Programming
    Replies: 2
    Last Post: 07-25-2011, 09:44 AM
  3. Search across multiple fields
    By Nexus13 in forum Programming
    Replies: 2
    Last Post: 07-08-2011, 02:38 PM
  4. Help with Search Fields
    By jhawk in forum Forms
    Replies: 2
    Last Post: 03-16-2011, 08:42 AM
  5. Help with Search Fields
    By jhawk in forum Programming
    Replies: 0
    Last Post: 03-15-2011, 08:05 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums