I am trying to use a search button to find : 1) VendorName and/or 2)InvoiceNo. One is working while the other is not. When I look for an invoice number, it works but when I try to find a vendor, it does not. The combo box does not list the vendor names as it should. And when I try to type a vendor name I get error message that reads: "The text you entered isn't an item in the list..."
What am I doing wrong? Can anyone please help? Thanks.
The main form is called frmFIND and the subform is called sfrmFindAP which is based on a query. The name of the query is qryAP which is working just fine.
frmFIND has this unbound combo box called cboVendor
Row Source: cboVendor
Expand|Select|Wrap|Line Numbers
- SELECT 0 as VendorID,
- "<ALL>" as VendorName
- FROM tblzNull
- UNION ALL
- SELECT tblVendors.VendorID,
- tblVendors.VendorName
- FROM tblVendors;
Expand|Select|Wrap|Line Numbers
- Private Sub cmdFIND_Click()
- ' Update the record source
- Me.sfrmFindAP.Form.RecordSource = "SELECT * FROM qryAP " & BuildFilter
- ' Requery the subform
- Me.sfrmFindAP.Requery
- End Sub
Expand|Select|Wrap|Line Numbers
- Private Function BuildFilter() As Variant
- Dim varWhere As Variant
- Dim varItem As Variant
- Dim intIndex As Integer
- varWhere = Null ' Main filter
- ' Check for LIKE InvoiceNo
- If Me.txtInv > "" Then
- varWhere = varWhere & "[InvoiceNo] LIKE ""*" & Me.txtInv & "*"" AND "
- End If
- ' Check for VendorName
- If Me.cboVendor > 0 Then
- varWhere = varWhere & "[VendorName] = '" & Me.cboVendor.Column(1) & "' AND "
- End If
- ' Check if there is a filter to return...
- If IsNull(varWhere) Then
- varWhere = ""
- Else
- varWhere = "WHERE " & varWhere
- ' strip off last "AND" in the filter
- If Right(varWhere, 5) = " AND " Then
- varWhere = Left(varWhere, Len(varWhere) - 5)
- End If
- End If
- BuildFilter = varWhere
- End Function