I have a database with one table, and I would like to be able to search 3 of the fields within it. I have created a search form with 3 input boxes and a subform to display the results. I have managed to get it working perfectly except that it will only search for 2 values rather than all 3. How can I amend it to take it all 3 values? Any help is greatly appreciated. My existing code is as follows;
Public Sub AddToWhere(FieldValue As Variant, FieldName As String, MyCriteria As String, ArgCount As Integer)
If FieldValue <> "" Then
If ArgCount > 0 Then
MyCriteria = MyCriteria & " and "
End If
MyCriteria = (MyCriteria & FieldName & " Like " & Chr(39) & FieldValue & Chr(42) & Chr(39))
ArgCount = ArgCount + 1
End If
End Sub
Private Sub search_Click()
Dim MySQL As String
Dim MyCriteria As String
Dim MyRecordSource As String
Dim ArgCount As Integer
MySQL = "SELECT * FROM [stock] WHERE "
AddToWhere [txtSearch1], "[sap_code]", MyCriteria, ArgCount
AddToWhere [txtSearch2], "[part]", MyCriteria, ArgCount
AddToWhere [txtSearch3], "[part_details]", MyCriteria, ArgCount
If MyCriteria = "" Then
MyCriteria = "True"
End If
MyRecordSource = MySQL & MyCriteria
If Me![txtSearch1] <> "" Then
MyRecordSource = MySQL & MyCriteria & " ORDER BY [sap_code]"
ElseIf Me![txtSearch2] <> "" Then
MyRecordSource = MySQL & MyCriteria & " ORDER BY [part]"
ElseIf Me![txtSearch3] <> "" Then
MyRecordSource = MySQL & MyCriteria & " ORDER BY [part_details]"
Else
MyRecordSource = MySQL & MyCriteria & " ORDER BY [sap_code]"
End If
Me![search_results_subform].Form.RecordSource = MyRecordSource
Exit_VIEW_Click:
Exit Sub
Err_VIEW_Click:
MsgBox Error$
Resume Exit_VIEW_Click
End Sub
Public Sub AddToWhere(FieldValue As Variant, FieldName As String, MyCriteria As String, ArgCount As Integer)
If FieldValue <> "" Then
If ArgCount > 0 Then
MyCriteria = MyCriteria & " and "
End If
MyCriteria = (MyCriteria & FieldName & " Like " & Chr(39) & FieldValue & Chr(42) & Chr(39))
ArgCount = ArgCount + 1
End If
End Sub
Private Sub search_Click()
Dim MySQL As String
Dim MyCriteria As String
Dim MyRecordSource As String
Dim ArgCount As Integer
MySQL = "SELECT * FROM [stock] WHERE "
AddToWhere [txtSearch1], "[sap_code]", MyCriteria, ArgCount
AddToWhere [txtSearch2], "[part]", MyCriteria, ArgCount
AddToWhere [txtSearch3], "[part_details]", MyCriteria, ArgCount
If MyCriteria = "" Then
MyCriteria = "True"
End If
MyRecordSource = MySQL & MyCriteria
If Me![txtSearch1] <> "" Then
MyRecordSource = MySQL & MyCriteria & " ORDER BY [sap_code]"
ElseIf Me![txtSearch2] <> "" Then
MyRecordSource = MySQL & MyCriteria & " ORDER BY [part]"
ElseIf Me![txtSearch3] <> "" Then
MyRecordSource = MySQL & MyCriteria & " ORDER BY [part_details]"
Else
MyRecordSource = MySQL & MyCriteria & " ORDER BY [sap_code]"
End If
Me![search_results_subform].Form.RecordSource = MyRecordSource
Exit_VIEW_Click:
Exit Sub
Err_VIEW_Click:
MsgBox Error$
Resume Exit_VIEW_Click
End Sub