Home  |   French  |   About  |   Search  | mvps.org  

What's New
Table Of Contents
Credits
Netiquette
10 Commandments 
Bugs
Tables
Queries
Forms
Reports
Modules
APIs
Strings
Date/Time
General
Downloads
Resources
Search
Feedback
mvps.org

In Memoriam

Terms of Use


VB Petition

Forms: Use the Column Property of a Combo Box

Author(s)
Ken Snell
 (Q) How do I have a textbox automatically fill in with a value after I select an item from a combo box on a form (e.g., select a person's ID in a combo box, and have the person's last name automatically display in a textbox)?

(A) The way to do this depends upon whether the textbox is bound to a field in the form's Record Source or not.
 

Unbound Textbox
In this example, we'll assume that your desired information is in a table named tblPersons, and that this table contains four fields: ID (the person's ID); FirstName (the person's first name); MiddleName (the person's middle name); and LastName (the person's last name).

Set the Row Source Type property of the combo box (assume it's named cboPersonID) to "Table/Query". Set the Row Source to a query that is based on tblPersons and that selects the ID and LastName fields:

 

'   ***** Code Start *****
SELECT ID, LastName
FROM tblPersons
ORDER BY ID;
'   ***** Code End  *****
Set the Bound Column property of cboPersonID to 1.
Set the Column Count property to 2.
Set the Column Widths property to this expression: 1";0".

Set the Control Source of a textbox (assume it's named txtPersonName) to this expression:

=[cboPersonID].[Column](1)

Note that the Column property of a combo box is "zero-based," meaning that the first column (field) in the combo box's Row Source is column 0, the second column is column 1, etc.

When you make a selection of a person's ID in the combo box, the textbox will automatically display the person's name. You can extend this example to include more textboxes by adding more fields to the combo box's Row Source query and setting the Control Source of each textbox to the appropriate column number of the combo box.


Bound Textbox
We'll use the same setup for the combo box as described in the "Unbound Textbox" example above. The difference in this situation is that an expression cannot be used as the Control Source for the textbox. Instead, we use VBA code on the AfterUpdate event of the cboPersonID combo box to place the desired value into the txtPersonName textbox.

'   ***** Code Start *****                
Private Sub cboPersonID_AfterUpdate()
     Me.txtPersonName.Value = Me.cboPersonID.Column(1)
End Sub
'   ***** Code End  *****

When you make a selection of a person's ID in the combo box, the textbox will automatically display the person's name. You can extend this example to include more textboxes by adding more fields to the combo box's Row Source query and adding additional steps to the code so that each textbox receives a value from the appropriate column number of the combo box.
 

 


© 1998-2010, Dev Ashish & Arvin Meyer, All rights reserved. Optimized for Microsoft Internet Explorer