Private Sub CommandSearch_Click()
' Create a WHERE clause using search criteria entered by user and
' set RecordSource property of frmSearcResult
Dim MySQL As String, MyCriteria As String, MyOrder As String
Dim ArgCount As Integer
' Initialize argument count.
ArgCount = 0
' Initialize SELECT statement.
MySQL = "SELECT * FROM tblMainData " & " WHERE "
MyCriteria = ""
' Order by the contents of cmbSort
MyOrder = ""
' Use values entered in text boxes in form header to create criteria for WHERE clause.
AddToWhere [SearchField1], "[Field1]", MyCriteria, ArgCount
AddToWhere [SearchField2], "[Field2]", MyCriteria, ArgCount
AddToWhere [SearchField3], "[Field3]", MyCriteria, ArgCount
AddToWhere [SearchField4], "[Field4]", MyCriteria, ArgCount
' When no criterion are specifed we return no records and return to frmSearchData.
If MyCriteria = "" Then
MyCriteria = "False"
End If
' Create SELECT statement.
MyRecordSource = MySQL & MyCriteria & MyOrder
Debug.Print MyRecordSource
' New query? Then set new recordsource
If MyRecordSource <> gv_RecordSource Then ' New query
DoCmd.OpenForm "frmSearchResult", , , , , A_NORMAL
Forms![frmSearchResult].Form.RecordSource = MyRecordSource ' Set RecordSource property of frmSearchResult
gv_RecordSource = MyRecordSource
If Forms![frmSearchResult].Form.RecordsetClone.RecordCount > 0 Then ' Returned some records?
Forms![frmSearchResult].Caption = "Current Record Selection"
DoCmd.OpenForm "frmSearchData", , , , , A_HIDDEN ' Hide frmSearchData
Forms![frmSearchResult].Caption = ""
Else ' Didn't return any records
Forms![frmSearchData].Caption = "No Records Found!"
DoCmd.OpenForm "frmSearchResult", , , , , A_HIDDEN ' Open the frmSearchResult form hidden
DoCmd.OpenForm "frmSearchData", , , , , A_NORMAL ' Hide frmSearchData
End If
Else ' Same old query
DoCmd.OpenForm "frmSearchResult", , , , , A_NORMAL ' Open the frmSearchResult form
Forms![frmSearchResult].Caption = "Current Selection"
DoCmd.OpenForm "frmSearchData", , , , , A_HIDDEN ' Hide frmSearchData
End If
' Now exit the sub
Exit Sub
RunQueryError:
MsgBox "Error: " & Err.Description
Exit Sub
End Sub