MS Access - return value of two columns from combobox added

Howdy,

I've searched high and low, and maybe it's my lack of terminology but basically here is the problem.

I have a dropdown combobox in a database that displays two columns from a different mdb file.  In the combobox Row Source field I have - "Select OtherMDB.Surname, OtherMDB,FirstName FROM OtherMDB;"
What I want to do is select the data and for it to return in one field in the new MDB database "Surname, FirstName"
So basically add the two columns together as the result.  Any ideas?
AGOITAsked:
Who is Participating?
 
Bill RossConnect With a Mentor Commented:
Hi,

newtextbox = combobox.column(1) & ", " & combobox.column(2)

will concantenate the text from the 1st and 2nd columns in the combo box and place the result into newtextbox.

Regards,

Bill
0
 
mbizupConnect With a Mentor Commented:
BillDenver has your answer - however Combo and Listbox column counts are zero based.  So the first column in your rowsource query is actually column 0 then 1,2,3 etc
0
 
peter57rCommented:
Based on your stated rowsource, you should use indexes 0 and 1 rather than 1 and 2 as Bill indicated.
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
AGOITAuthor Commented:
Thanks a mill.
0
 
AGOITAuthor Commented:
Just trying to clarify, I'm very rusty on SQL and dont use ACCESS that much
Can I get it to state the return "Surname, Firstname" in the same combobox once it's selected?

Say the combobox is named "ComboFirstSecond" I take it I throw that into the "After Update" of the combobox  - ComboFirstSecond = ComboFirstSecond.Column(0) & ", " & ComboFirstSecond.Column(1)
0
 
Bill RossCommented:
Hi,

That's correct.  In the AfterUpdate event of the combo box put the code:

yourtextbox = ComboFirstSecond.Column(0) & ", " & ComboFirstSecond.Column(1)

Where yourtextbox is the name of the desired target text box.

Regards,

Bill
0
 
AGOITAuthor Commented:
Thanks Bill.  I take it I can't get the combo box to be the target text box?  I'll just update it so that when it's updated the combo box is made invisible and the target text box is made visible in its place.
0
 
Bill RossCommented:
Hi,

You can only display a single column but...

You could create a computed column in the combobox's rowsource query and display it that way.  You can display the computed column and bind the combo box to a different column in the property sheet.

Regards,

Bill
0
 
mbizupCommented:
+1

For that idea... ideally display concatenated first and last name in one column and set the bound column to a primary key/id field.

If you set the width of the ID column to zero,  your 'full name' will automatically be what gets displayed in the text portion of your combo.
0
 
Dale FyeCommented:
Actually, I like my people combo boxes to have only two columns (an ID, and a Name), but I display the name both ways (First Last and Last, First).  That way, regardless of how the user starts typing the name, they will find it.  My SQL usually looks like:

SELECT ID, FullName
FROM (
SELECT ID, [Last] & ", " & [First] as FullName, 0 as SortOrder
FROM myTable
UNION
SELECT ID, [First] & " " & [Last], 1 as SortOrder) as Temp
ORDER BY Temp.SortOrder, FullName

This would present the user with:

2,  "Jones, Steve"
1,  "Smith, John"
1, "John Smith"
2, "Steve Jones"

Note that the ID is not unique, so if you set the combo to a particular ID value, it will display the first value that matches the ID.
0
 
AGOITAuthor Commented:
Brilliant!  Fantastic work, I should be able to get that to work!
0
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.

All Courses

From novice to tech pro — start learning today.