• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 321
  • Last Modified:

Filling in a text box automatically based on a selection in a previous combo box

I have 5 fields in a table: Consignee (to), Consignee street, Consignee city, Consignee state and Consignee zip.  All the information for each record has been entered into the table.  I then created a main table and created a field called Consignnee (to) in it and made it a combo box that points back the Consignee (to) field in the first table so that i have a drop down box for users to select from instead of typing everytime.  When a user selects a name from the Consignee (to) box on the form i need the other 4 fileds to be filled in automatically based on their selection in the Consignee (to) box.  I have the field in the table set to column 1 as containing the data for that field and the column count set to 5.  On the form i have all the fields showing and in Consignee Street  i have the control source set to me.consignee_to_.column(2).  When i open the form and select an answer in the Consignee (to) the Consignee Street just shows Name# in the field and not the address.
  • 2
  • 2
1 Solution
Dale FyeCommented:
If you use a query or the entire Consignee table as the rowsource for your combo box, then you can use the AfterUpdate event of that combo to display the other information.  When I do this, I generally set the Locked property of those textboxes to Yes, to prevent the use from thinking they can be changed.  if the SQL looks like:

SELECT Consignee, [Consignee street], [Consignee city], [Consignee state], [Consignee zip]
FROM tbl_Consignees

Then the code would look something like:

Private sub cbo_Consignee_AfterUpdate

    me.txt_ConsigneeStreet = me.cbo_Consignee.column(1)
    me.txt_ConsigneeCity = me.cbo_Consignee.column(2)
    me.txt_ConsigneeState = me.cbo_Consignee.column(3)
    me.txt_ConsigneeZip = me.cbo_Consignee.column(4)

End Sub
ramromconsultant Commented:
Your description is vague and unclear - raises many questions.
I don't have time or inclination to ask the questions.
Instead I offer a potential solition:

sub consignee_to__afterupdate() 
txt1 = consignee_to_.column(1)
txt2 = consignee_to_.column(2)
txt3 = consignee_to_.column(3)
txt4 = consignee_to_.column(4)
txt5 = consignee_to_.column(5)
end sub

Open in new window

I used "txt1" etc since I don't know the names of your text boxes.

I highly recommend avoiding blank and special characters in field and control names

Consignee_to, Consignee_street, Consignee_city, Consignee_state and Consignee_zip are much better choices for many reasons.

I see no purpose for the main table. Please elaborate.
ramromconsultant Commented:
As you might guess I was perfecting my reply while fyed was perfecting his. So you have 2 similar answers. Have fun with it.
Dale FyeCommented:

Answers were identical, one was submitted 10 minutes before the other.
AisinAutoAuthor Commented:
i chose the second one because the frst also had a query in it which i did not use.  I did only what the second response said and it worked.  If you want to split it evenly that is fine.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

7 new features that'll make your work life better

It’s our mission to create a product that solves the huge challenges you face at work every day. In case you missed it, here are 7 delightful things we've added recently to monday to make it even more awesome.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now