Bob:
Another way in which you can sort of achieve what you want by using a hybrid
control made up of your combo box and a text box overlaid on top of it so it
exactly covers the text box part of the combo box, leaving only the down
arrow visible to the right. To the user it will look like a single combo box
control. This is really the same as Arvin's suggestion, but with the text
box superimposed on the combo box rather than separate from it. You'll also
need to do the following:
1. Set the TabStop property of the combo box to False ('No' in its
properties sheet).
2. Set the ControlSource property of the text box to an expression
referencing the third column of your combo box, e.g.
=YourComboBox.Column(2)
(the Column property is zero-based, so Column(2) is the third column)
3. In the AfterUpdate event procedure of the combo box move focus to the
text box, e.g.
Me.YourTextBox.SetFocus
This will work after a fashion but is pretty kludgy. The user can drop down
the combo box with the arrow and select a row, but they can't type a value
into the control and go to the first match using the autoexpand feature; or
more strictly speaking they can only do so after dropping down the list, and
even then they'd have to type a value for the second column (i.e. the first
visible column) not the third. So all in all the this solution is akin to Dr
Samuel Johnson's description of a dog walking on its hind legs in that the
wonder is not that it is done well, but that it done at all. Why not simply
reverse the order of the second and third columns in the combo box's
RowSource? That way you can use the combo box in the normal way and see the
relevant column in the control after a selection is made.
Ken Sheridan
Stafford, England