Bound combo boxes display ID and not Description field

All combo boxes I have on the forms I'm designing display a record id instead of the description.  I am using a ScrollBar
with the CurrencyManager moving the position back and forth as one option for record selection.  As I scroll through the
table the values of my cmboPaymentTerms.Text changes to each of the record id's.  Needless to say the
cmboPaymentTerms.SelectedIndex remains at 0 because they are not being touched.  If I click on any of my combo
boxes they contain the appropriate list as specified by the DataSource.

        cmboPaymentTerms.DataBindings.Add("Text", dtContact, "payment_term_id")

        cmContact = CType(Me.BindingContext(dtContact), CurrencyManager)

        With cmboPaymentTerms
            .DisplayMember = "Description"
            .ValueMember = "payment_term_id"
            .DataSource = dtPaymentTerm
        End With

        cmContact.Position = 10       <-----  Hypothetically
        cmboPaymentTerms displays 0 instead of "Due on Receipt"

I have read about 10-12 forum posts trying to identify how to deal with this issue but cannot find anything that helps.

Trying to corollate the record id with a row will not work because my record id's are not sequential.

What is the value of .ValueMember?  It apparently has no bearing on displaying the proper .DisplayMember.
Would it not make sense to add a combo box property like .Binding where the field specified in .Binding would
synchronize the combo box with the .DataBinding and display the appropriate .DisplayMember?

Please help.  Thanks!

Phil Tate
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I suggest you try getting rid of this line

        cmboPaymentTerms.DataBindings.Add("Text", dtContact, "payment_term_id")

And, having now re-read your post, substitute this instead

        cmboPaymentTerms.DataBindings.Add("SelectedValue", dtContact, "payment_term_id")


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
TSFLLCAuthor Commented:

I'm relatively new to VB.Net.  I've used Access & VBA for years but apparently need to
review databinding properties a little deeper.  This is exactly what I assumed should be
available.....a 'one-liner' to display the appropriate value.


It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.