Link to home
Start Free TrialLog in
Avatar of NO_CARRIER
NO_CARRIER

asked on

search column of listbox

Hi, I have a multicolumn listbox.  It contains 4 columns.

How do I search if a word exists anywhere in column for.

something to the effect of...

if lstbox.columns(4) = "Yes" then msgbox ("There is the word 'Yes' somewhere in this column!")

Avatar of bandriese
bandriese
Flag of United States of America image

As far as I know you can't seach the contents of a list box. What you can do is create a query the is exactly list the Row Source Property for your list box and add perform your checking on the external query. Since I don't know what you're soing exactly there are several possible ways to get what you're looking for. For example, if you want to see all records with that "Yes" in column 4 then in your query put "Yes" in the criteria box for the coresponding field (presumibly the 5th one since columns start at 0). If you are trying to see if a record exists or not, then I would build a function to do that or put the code in a sub routine in your form. The code might look something like the below. Then in your form.. use somthing to call the function like:

Dim MyValue As String
MyValue = CheckForRecords()

If MyValue = "True" Then
  'Yes there are records, Do something
Else
  'No records, do something else
End If


 
Public Function CheckForRecords()
'Save this function as a module
 
Dim db As DAO.Database, rs As DAO.Recordset
Dim SQL As String
Set db = CurrentDb()
SQL = "SELECT * FROM Table;"  'Put your SQL code here
Set rs = db.OpenRecordset(SQL)
 
If .EOF Then
     CheckForRecords = "False"
  Else 
     CheckForRecords = "True"
End If
 
'If you want to do something with the individual records, you can use a loop like this
'With rs
'   While Not .EOF
'       Do something with the records here
'       .MoveNext
'   Wend
' End With
 
Set rs = Nothing
Set db = Nothing

Open in new window

In case you use it. I forgot to say that my code example uses uses DAO rather than the newer ADO. The DAO method will work fine, but DAO Objects 3.6 must be enabled under Tools | References in order for this code to function. If you need ADO, let me know.
Avatar of NO_CARRIER
NO_CARRIER

ASKER

Hi Band... I don't think a select query would work in this instance, as the record itself hasn't actually been created at this point.  

I have an unbound form with unbound controls.  One of which is the multi-column listbox.  Basically when I remove an item (or add an item), I need to know if any of the items in the 4th column have a certain property set to True.  If it is true, then it will change the validation rules for eventually adding the record to the database...
Okay, so the unbound form and controls is fine. I'm not sure what you're adding or removing from or to. But perhaps you can add code in the On Change or After Update property of the ListBox to check the value. Otherwise, perhaps you can attach a mdb file with just your form in it so I can see what you're doing, if that's possible.
I have a listbox with 4 columns.
I have a series of comboboxes, and controls to add items to the listbox.

When the user clicks [Add Item] it will add items to the listbox.
When the user highlights an item and clicks [Remove Item] the item is removed from the listbox.

When the user has completed filling out the form and wanted to create the record they then click [Create Record], at which point I need to validate the 4th row of the listbox to see if any of the items have "True" listed.  If any of the items have True, then my insert statement will be different.

The problem about checking when adding/removing items is there can be multiple items with True, all, or none.  So I will need to check after the user has complied their list in the listbox.
ASKER CERTIFIED SOLUTION
Avatar of bandriese
bandriese
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial