Microsoft KB Archive/166929

= FIX: DBCombo Control Change Event Does Not Fire =

Article ID: 166929

Article Last Modified on 3/2/2005

-

APPLIES TO


 * Microsoft Visual Basic 5.0 Professional Edition
 * Microsoft Visual Basic 5.0 Enterprise Edition

-



This article was previously published under Q166929



SYMPTOMS
Program code in the Change event procedure of Microsoft Visual Basic will not execute. Applications written using Visual Basic version 4.0 may no longer work as expected if functionality is based on responding to a Change event in a DBCombo control.



RESOLUTION
To correct this problem, use one of the following methods.
 * Install Visual Studio 97 Service Pack 2 or later. -or-


 * To resolve this problem without installing Visual Studio 97 Service Pack 2 or later:

Replace the functional code of the Change event procedure with equivalent code entered in the Click event procedure. This code is conditioned by testing the DataChanged property of the DBCombo control.

An example of this workaround is as follows: Private Sub DBCombo1_Click(Area As Integer) If DBCombo1.DataChanged Then ' Any code that would normally be in the Change Event ' or call the Change event like this: DBCombo1_Change ' followed by code that resets the DataChanged property, such as: DBCombo1.DataChanged = False End IF  End Sub If the user normally tabs to the DBCombo control and then uses arrow keys to navigate to an item in the list, similar code would be required in the KeyPress, KeyDown and/or KeyUp event procedures. In this case, it would be more effective to write a single form-level module to replace the code of the DBCombo Change event and call it from the various places where the DBCombo.DataChanged property would be tested.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been fixed in Visual Studio 97 Service Pack 2.

For more information, please see the following article in the Microsoft Knowledge Base:

170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why



Steps to Reproduce Behavior
 Start a new Standard EXE project. Form1 is created by default. On Form1, place two Data Controls named Data1 and Data2.  Set the following values for the properties of Data1:   Name            Data1 DatabaseName   C:\Program Files\DevStudio\VB\Biblio.mdb (or the                   appropriate path to that database) RecordsetType  0 - Table RecordSource   Titles   Set the following values for the properties of Data2:   Name            Data2 DatabaseName   C:\Program Files\DevStudio\VB\Biblio.mdb (or the                   appropriate path to that database) RecordsetType  2 - Snapshot RecordSource   SELECT PubID, Name FROM Publishers ORDER BY Name  Place a DBCombo control on the form.</li>  Set the following values for the properties of DBCombo1: <pre class="fixed_text">  Name            DBCombo1 BoundColumn    PubID DataField      PubID DataSource     Data1 ListField      Name RowSource      Data2 Style          0 [ASCII 150] dbcDropDownCombo </li>  In the module for the form, enter the following: Private Sub DBCombo1_Change Debug.Print "In the Change Event Method" End Sub </li> Run the form. Click the down arrow to the DBCombo to open the list portion.</li> Click any line in the list portion. Observe the Immediate (Debug) Window.</li></ol>

Keywords: kbbug kbfix kbcontrol KB166929

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.