Let's go from the query to the form.
Create a new query. If you use the wizard, select the table/query with the ten fields and tell it you want all the fields. If you do it in design mode without the wizard, when the table list opens select the table/query that has the ten fields and drag them into the query grid. Name one of them MyField. Save the query as MyQuery.
Since you have the form already, open it in design mode and select Properties. In the data tab, select RecordSource and set it to MyQuery. Then go to the text box and select Properties. In the Data tab, select Control source and set it to MyField.
You now have the form looking at your query and the Testbox looking at one of the fields in the query.
Now type in the code as above. Put in a breakpoint on the top line to pause it and select Column3 in the combobox. Now step through the code by pressing F8. Right after you get past the line where you set the value of str, go to the View menu at the top of the screen and select Immediate Window. You will see a blank area open up somewhere on the screen (I would expect it to be at the bottom). Go into this area (the Immediate Window) and type
?str
and press enter. The contents of the str variable will be displayed. It should be something like:
SELECT Column3 AS MyField FROM TheTenColumnTableName
What should happen if that is what is in str is MyQuery should change (during the running of the code - I don't know if it will be a permanent change) to select the column you selected from the combo box and name it MyField, which is what the textbox is looking for.