Don't get "lookup fields" confused with "foreign keys". A FK is a field (not necessarily numeric) that contains the value of another table's PK. Generally you will have defined a relationship (one-to-many or occasionally one-to-one) between the table with the PK (one-side) and the table with the FK (many-side or other one-side). [Note that the two sides of a one-to-one relationship are not *equal*. There is still a PK and a FK]
Relationships are the whole raison d'être
for relational databases. If a customer places an order, then your Orders table needs to contain no information about the customer, other than a FK to the Customers table. [Take a look at the sample NorthWind database for many examples of these relationships]
A Lookup Field is a FK which has been "doctored" so as to show, not the PK of the related table, but another foeld from that table. For example, it might show CustomerName instead of CustomerID. Most database professionals (and every Access MVP that I know) regards lookup fields to be Instruments of Satan (as you have already read at http://www.mvps.org/access/lookupfields.htm)
Now, you mentioned combo boxes. These are a great way to select a related record in order to fill in a FK value. However, you don't need to use lookup fields in order to use combo boxes.
Your example said:
SELECT tblAddressTypes.AddressTypeID, tblAddressTypes.AddressType
I guess you are trying to use this as the RowSource of a combo box bound to a FK field named AddressType, or some such. You are most of the way there
The trick comes with understanding some of the other properties of the combo box. This RowSource is a query which has two columns: the first is AddressTypeID (the PK) and the second is AddressType (the displayed name).
As it has two columns, you must set the combo box's ColumnCount property to 2.
The value you want to store in the bound FK field is the AddressTypeID value in column 1, so you must set the BoundColumn property to 1.
Finally, you do not wish to see the AddressTypeID value in the combo box, only the text. For this you use the ColumnWidths property. This is a list of widths, one for each column, separated by semicolons.
There are three things you need to know:
1. When the combo box is not dropped down, what you see is the value from the selected row in the first column that has a non-zero width
2. When the list is dropped, you see all the columns that do not have a zero width, each with its assigned width.
3. Any columns that do not have an assigned width have the remaining space divided equally between them.
In your case, you want to hide the first column, and let the second one use all the remaining space, so set ColumnWidths to 0;
Hope this is enough to dispel your confusion and get you going