DataCombo (DBCombo) Returning Wrong Value

Posted on 2000-02-13
Last Modified: 2008-03-03
The problem is actually in the DBLIST32.OCX file that ships with VB 6, and by using an old version of DBLIST32.OCX from VB 5, the problem goes away.

If you set up one text box bound to one data control, and the DBCombo bound to anoter Data Control, with the below settings, and put two msgBox lines, displaying which record value you have selected, in the Change event, the msgBoxes will have two different values.  See the steps below.  The same code in the Click event, seems to work.  If the Change does work, then if you move the code to the Click, it works, but if you move it back to the Change, it stops working.  Also, I am not getting the textbox, via the other data control, to show the name selected.  Any ideas?

Side Effect:
Unfortunately, if a VB5 application is installed on a machine, then someone else installs an application written with VB 6 that includes DBLIST32.OCX, it will update the file, thereby "breaking" the application!

Sample Steps and Code:
Below is a "simplified" set of steps to create the problem from a blank project using the Microsoft "standard" MDB file "biblio".

1. Create a new project
2. From Project, Components, add Microsoft Data Bound List Controls 6.0
3. Place a data control on the form.
     Name: dataTitles
     Databasename: Biblio
     RecordSource: Titles
4. Place a data control on the form.
     Name: dataPub
     Databasename: Biblio
     RecordSource: Publishers
5. Place a textbox on the form.
     DataSource: dataTitles
     DataField: Title
6. Place a DBCombo on the form.
     RowSource: dataPub
     ListField: Name
     BoundColumn: PubID
     DataSource: dataTitles
     DataField: PubID
7. Add this code to the Change event for DBCombo1
      MsgBox DBCombo1.Text & " " & DBCombo1.BoundText
      MsgBox DBCombo1.Text & " " & DBCombo1.BoundText
8. Run the program. Choose a different publisher from the dropdown.
9. Two message boxes will be displayed with different results in each. There is no reason why the values should change between the two MsgBox statements!
10. Move the code from the Change to the Click event for DBCombo1.
11. Run the program, and choose a different publisher from the dropdown.
12. Both MsgBox statements show the same value this time!
Question by:MMILLER
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
LVL 32

Expert Comment

ID: 2517199
"FIX: Change Event Not Fired When Selecting an Item in DBCombo"

Author Comment

ID: 2517459
Does that go for VB6?  The article is about VB5.

LVL 32

Accepted Solution

Erick37 earned 70 total points
ID: 2517494
The previous article refers to VB5, prior to the service pack updates.

MS has an example of using 2 data controls and a dbcombo:

"HOWTO: Synchronize Data on the Form with a dbCombo"
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now


Author Comment

ID: 2518507
One last comment.  The problem exists in VB6 using Data and DBCombo.  I have SP3, plus that data update they put out.

Is MS aware of the VB6 problem using those controls and have they fixed that yet?

And thanks for the sample.  I'll try that.

Expert Comment

by:Bhaskar Ganapathe
ID: 2530404
Hello MMiler,

I am getting the same answer with the
two msgboxes in the change event of
the dbcombo1.

I did the same way as you are given.
just try it and reply

Author Comment

ID: 2531258
>>I am getting the same answer with the
two msgboxes in the change event of
the dbcombo1.

I did the same way as you are given.
just try it and reply


Do you mean with Erick37's sample of "how to", which refers to VB5?

If you are saying that you get the correct answer with VB6 using my steps above, then I did get the correct answer, with the steps above, on my FIRST pass.  Then I changed it to Click, then back again, and it stopped working.  My steps above, definitely produce unstable results.  I still have to try the "how to" sample from Erick under my VB6, though.  I am going to accept and close out Erick's comment.  If it doesn't work, I will have to come back.


Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Suggested Courses
Course of the Month5 days, 16 hours left to enroll

627 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