Article: Q269037
Product(s): Microsoft Visual Basic for Windows
Version(s): WINDOWS:2.5,2.6,6.0
Operating System(s):
Keyword(s): kbDatabase kbDataBinding kbVBp600bug kbGrpDSVBDB kbDSupport kbATM kbmdac270 kbado270
Last Modified: 23-AUG-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual Basic Professional Edition for Windows, version 6.0
- Microsoft Visual Basic Enterprise Edition for Windows, version 6.0
- ActiveX Data Objects (ADO), versions 2.5, 2.6, 2.7
-------------------------------------------------------------------------------
SYMPTOMS
========
When you re-query a recordset, then binding a new recordset or otherwise
resetting the RowSource property on a DataCombo control causes the BoundText
property of a DataCombo to return the Text property.
RESOLUTION
==========
To work around the problem, set the DataCombo.Text property to itself as
follows:
DataCombo1.Text = DataCombo1.Text
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
MORE INFORMATION
================
Steps to Reproduce Behavior
---------------------------
1. Create a form in the Visual Basic form editor with three command buttons, a
DataCombo control, the ADO data control, and a ListBox control.
2. Add the following code to the form:
Private Sub Command1_Click()
' First show that the BoundText displays a number
List1.AddItem DataCombo1.BoundText
End Sub
Private Sub Command2_Click()
' Now it displays a name!
' This is where we break the bindings and display the results
' When command1 executes DataCombo1 will show datacombo1.text
' instead of datacombo1.boundtext.
Adodc1.Refresh
Command1_Click
End Sub
Private Sub Command3_Click()
' Here we implement the fix.
DataCombo1.Text = DataCombo1.Text
Command1_Click
End Sub
Private Sub Form_Load()
' You may need to change the path in the following
' line to point to NWIND.MDB
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=E:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB"
Adodc1.RecordSource = "Employees"
DataCombo1.BoundColumn = "EmployeeID"
DataCombo1.ListField = "LastName"
Set DataCombo1.RowSource = Adodc1
Set DataCombo1.DataSource = Adodc1
DataCombo1.Text = "1. Select a name"
Command1.Caption = "2. List BoundText"
Command2.Caption = "3. Requery Recordset"
Command3.Caption = "4. Reset BoundText"
End Sub
3. Run the program, and follow the numbered captions.
Additional query words:
======================================================================
Keywords : kbDatabase kbDataBinding kbVBp600bug kbGrpDSVBDB kbDSupport kbATM kbmdac270 kbado270
Technology : kbVBSearch kbAudDeveloper kbADOsearch kbADO250 kbADO260 kbZNotKeyword6 kbZNotKeyword2 kbVB600Search kbVB600 kbADO270
Version : WINDOWS:2.5,2.6,6.0
Issue type : kbbug
Solution Type : kbpending
=============================================================================