Solved

search column of listbox

Posted on 2008-06-10
6
405 Views
Last Modified: 2013-11-27
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!")

0
Comment
Question by:NO_CARRIER
  • 4
  • 2
6 Comments
 
LVL 3

Expert Comment

by:bandriese
ID: 21753607
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

0
 
LVL 3

Expert Comment

by:bandriese
ID: 21753628
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.
0
 
LVL 1

Author Comment

by:NO_CARRIER
ID: 21753689
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...
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 3

Expert Comment

by:bandriese
ID: 21753775
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.
0
 
LVL 1

Author Comment

by:NO_CARRIER
ID: 21754071
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.
0
 
LVL 3

Accepted Solution

by:
bandriese earned 50 total points
ID: 21754294
Ah, I see. Well this is something I havn't done below. Try something like the code below. In 'some code put your IF then's to check the fields.

I found this courtesy of DatabaseMX, see the question: http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_23439431.html

Hope that helps...
Dim iCount as Integer
 

For iCount = 0 to Me.ListBox.ListCount -1

   ' some code

Next iCount

Open in new window

0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

The first two articles in this short series — Using a Criteria Form to Filter Records (http://www.experts-exchange.com/A_6069.html) and Building a Custom Filter (http://www.experts-exchange.com/A_6070.html) — discuss in some detail how a form can be…
Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now