OK, I hope that I can make this clear... I just started with Access and this is my first posting here 
[Table1] has fields [t1ID], [text1], [text2] and [bool] containing records {{1;Jane;Smith;0}; {2;John;Davis;-1}; {3;Bob;Jones;-1}; {4;Al;Brown;0}}
[Query1] reads "SELECT t1ID, [text2] & ", " & [text1] AS fullname FROM Table1 WHERE (bool = False) ORDER BY [text2] & ", " & [text1];" so it returns the records {{4;Brown, Al}}; {1;Smith, Jane}}
[Table2] has fields [t2ID], [t1ID] and [whatever] containing no records as yet. [t1ID] has the following properties:
Data Type: 'Number' (Long Integer)
Indexed: 'Yes (No Duplicates)'
Row Source: 'SELECT t1ID, fullname FROM Query1'
Bound Column: '1'
Column Widths: '0";1"' (i.e. t1ID is hidden)
So, in datasheet view, the options in the t1ID dropdown are "Brown, Al" and "Smith, Jane". Even though the field stores 4 or 1, it displays the fullname. This is true after closing and re-opening the table. (These behaviours are actually noteworthy, even though most readers might find them obvious.)
What I want to accomplish is this: If a record is created with t1ID="4", then I want the dropdown to only offer "1" for a new record. So, (for demonstrational purposes) I created [Table3] which looks like [Table2], except t1ID.RowSource = "SELECT t1ID, fullname FROM Query1 WHERE t1ID NOT IN (SELECT t1ID FROM Table3)" but it lead to so many anomalies...
If [Table3] has no records, the options offered are as expected: both possible records. If a name is selected and the first record is created, the second record still offers both names. (I assume this has to do with early binding.) If I now close and reopen the table, the second record now offers only the unselected value. Great right?
Well, no - because now the first record shows 4 or 1 instead of the fullname. What happened there?
And, while you're here, how can I make the 'Row Source' late binding? such that the query is run against the current values in Table3?

[Table1] has fields [t1ID], [text1], [text2] and [bool] containing records {{1;Jane;Smith;0}; {2;John;Davis;-1}; {3;Bob;Jones;-1}; {4;Al;Brown;0}}
[Query1] reads "SELECT t1ID, [text2] & ", " & [text1] AS fullname FROM Table1 WHERE (bool = False) ORDER BY [text2] & ", " & [text1];" so it returns the records {{4;Brown, Al}}; {1;Smith, Jane}}
[Table2] has fields [t2ID], [t1ID] and [whatever] containing no records as yet. [t1ID] has the following properties:
Data Type: 'Number' (Long Integer)
Indexed: 'Yes (No Duplicates)'
Row Source: 'SELECT t1ID, fullname FROM Query1'
Bound Column: '1'
Column Widths: '0";1"' (i.e. t1ID is hidden)
So, in datasheet view, the options in the t1ID dropdown are "Brown, Al" and "Smith, Jane". Even though the field stores 4 or 1, it displays the fullname. This is true after closing and re-opening the table. (These behaviours are actually noteworthy, even though most readers might find them obvious.)
What I want to accomplish is this: If a record is created with t1ID="4", then I want the dropdown to only offer "1" for a new record. So, (for demonstrational purposes) I created [Table3] which looks like [Table2], except t1ID.RowSource = "SELECT t1ID, fullname FROM Query1 WHERE t1ID NOT IN (SELECT t1ID FROM Table3)" but it lead to so many anomalies...
If [Table3] has no records, the options offered are as expected: both possible records. If a name is selected and the first record is created, the second record still offers both names. (I assume this has to do with early binding.) If I now close and reopen the table, the second record now offers only the unselected value. Great right?
Well, no - because now the first record shows 4 or 1 instead of the fullname. What happened there?
And, while you're here, how can I make the 'Row Source' late binding? such that the query is run against the current values in Table3?