Solved

Frustrated try to Loop through combobox VB.Net

Posted on 2009-04-01
8
1,638 Views
Last Modified: 2012-06-27
Hi EE,

Getting really frustrated.  I have search everywhere trying to find an example of how to loop through items in a combobox.  It was so EASY in VB 6.
1.  I have a table Company that has a StateID
2.  I fill the table and capture the StateID value
3.  I fill my State combobox using the code below.
Now I need to find which item in the list has the same stateid.
I tried all kinds of things, but nothing works.
Please help
Thank you


Public Sub FillComboBox(ByVal cnt As ComboBox)

        'example fill states

        Dim ds As New DataSet
 

        If DatabaseToUse() = BizObjs.DBType.Access Then

            'Access Database

            Dim cFields As New cFieldTableNames            

            cFields.ComboTable = msTblName

            SelectStr = cFields.ReturnComboString()   'Returns my select statement

            Dim dc As New OleDb.OleDbConnection(ConnectionString)

            Dim da As New OleDb.OleDbDataAdapter(mSelectStr, dc)
 

            Try

                da.Fill(ds)

                dc.Close()
 

                cnt.DataSource = ds.Tables(0)

                cnt.DisplayMember = cFields.SendToCorrectFieldProcedure(3)  'Gets the field name for the display member

                cnt.ValueMember = cFields.SendToCorrectFieldProcedure(1)  ' Get the field name (StateID) for the valuemember
 
 

            Catch ex As Exception
 

                MessageBox.Show(ex.Message)

                Throw ex
 

            Finally

                dc.Close()

                da.Dispose()

            End Try

        End If
 

    End Sub

Open in new window

0
Comment
Question by:Sheritlw
  • 5
  • 3
8 Comments
 
LVL 53

Expert Comment

by:Dhaest
ID: 24036600
why re-invent the wheel for finding a specific item in a combobox?  The control already has the functionality built in....

// This will find the first item with "TEST" as it's value.
Dim index As Integer = comboBox1.FindStringExact("TEST")
// this will select the first item that has "TEST" as it's value.
comboBox1.SelectedIndex = index
0
 

Author Comment

by:Sheritlw
ID: 24036642
I tried the solution provided again as follows
i = cbo.FindStringExact(iValue.ToString)
it returns -1
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 24036749
Can you give some example of values you see in your combobox and what value you are searching for ?
0
 

Author Comment

by:Sheritlw
ID: 24036767

Yes, I am search for
IDs are autonumber fields in Access

ID 1 goes with Alaska
ID 2 goes with Alabama
ID 3 goes with Arkansa
ID  4  goes with State Arizona
ID 5 goes with California
ID 6 goes with Colorado

etc.
thanks
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:Sheritlw
ID: 24036772
My company table holds value 4 in its StateID field.
I need the combo to select id 4 and show Arizona.
0
 
LVL 53

Accepted Solution

by:
Dhaest earned 500 total points
ID: 24036778
Perhaps this can help you
Dim dt As DataTable = DirectCast(comboBox1.DataSource, DataTable)
Dim yourState as string
For i As Integer = 0 To dt.Rows.Count - 1
    Dim displayText As String = dt.Rows(i)(comboBox1.DisplayMember).ToString()
    Dim valueItem As String = dt.Rows(i)(comboBox1.ValueMember).ToString()
    ' Process the object depending on the type
    if valueItem = "TheValueYouAreSearchingFor" then
       comboBox1.SelectedIndex = i
       yourState = displayText
   end if
Next
0
 

Author Comment

by:Sheritlw
ID: 24036821
Hi Dhaest,

It worked!!!!  Thank you, thank you, thank you.
I have another question open that asks the same thing.  It is titled ...
"Retrieve Index of Matching value in Combobox"
Put something in there and I will give you those points to.
Thanks again
0
 

Author Closing Comment

by:Sheritlw
ID: 31565203
Excellent.  Gave me the perfect example.
Thanks for your help!
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Article by: Kraeven
Introduction Remote Share is a simple remote sharing tool, enabling you to see, add and remove remote or local shares. The application is written in VB.NET targeting the .NET framework 2.0. The source code and the compiled programs have been in…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

705 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

21 Experts available now in Live!

Get 1:1 Help Now