NC_Sue said:
When I do as you suggest, all that shows up is "3" or "5"... the
numeric value of the foreign key or primary key (depending on whether
I try to pull this from the Contacts table or the Contacts Type
table). Or, conversely, if I play around with it until the text shows
rather than the numeric key, every single contact gets changed to the
same contact type when I make a change in the contact type for a
given record.
Let's return to basics here.
The RowSource controls what is in the the drop-down list. It can have one
or more columns. If it has more than one column then you also have to set
the ColumnCount property of the ComboBox to match. So if your RowSource
query returns both the ID and the Text and your ColumnCount is set to 2 and
you have set ColumnWidths to 1";1" and you have the ListWidth property set
to 2" then you should see both the ID and the Text in the drop down list
(each column will be one inch wide). After making a selection you will see
the ID number (we will change that in a minute).
Now the ControlSource should be set to the field where you want your
selection stored in the form's RecordSource. Normally this would be a
numeric ID field and you would store the ID, not the text. Setting the
BoundColumn property of your ComboBox to 1 will cause the ID column to be
the one that is saved.
You should now find that when you move to a record and make a selection in
the ComboBox that the number value of the chosen ID is stored in that record
of the table (when you save the record).
When you have that, you can then change the ColumnWidths property of the
ComboBox from 1";1" to 0";2". That will hide the ID column when the list is
dropped and will cause the undropped ComboBox to show the Text value instead
of the numeric ID. The VALUE of the ComboBox will still be the numeric ID
value, but you will see the text value.