When you enter a value in the foreign key field of an AutoLookup query,
fields from the "one" side table should update automatically with related
information. However, if you are adding a new record and one or more fields
from the "one" side have a default value, Microsoft Access assumes that you
are trying to add a record to the "one" side as well as to the "many" side.
If there are no default values for any of the "many" side fields, when you
enter a value in the foreign key field after making an entry in another
field from the "many" side table, you may receive the following error message:
<field name> field must match join key '?' on 'one' side of one-to-many relationship because it has been updated.
If there are default values for any of the "many" side fields, or if you
have not entered any value in any field from the "many" side table, you
will receive the following warning message in the status bar after you
enter a value in the foreign key field:
To make changes to this field, first save the record.
Steps to Reproduce Behavior
- Open the sample database Northwind.mdb.
- Select the Orders table, and on the Edit menu click Copy.
- On the Edit menu, click Paste.
- In the Paste Table As dialog box, type Orders2 in the Table Name box, and then click OK.
- Open the Orders2 table in Design view.
- Change the OrderID data type from AutoNumber to Number.
- Save and close the Orders2 table.
- Create the following new query based on the Customers and the Orders2 tables:
Query: AutoLookup
------------------
Type: Select Query
Field: OrderID
Table: Orders2
Sort: Ascending
Field: OrderDate
Table: Orders2
Field: CustomerID
Table: Orders2
Field: CompanyName
Table: Customers
Field: Address
Table: Customers
Field: City
Table: Customers
Field: Region
Table: Customers
Field: PostalCode
Table: Customers
Field: Country
Table: Customers
Field: Phone
Table: Customers
- Save the query as AutoLookup and close it.
- Select the AutoLookup query, and on the Insert menu, click AutoForm.
- When the new form opens in Form view, on the View menu, click Design View.
- Select the CustomerID control, and then on the Format menu, point to Change To, and then click Text Box.
- Select the Region control, and set its DefaultValue property to 0 (zero).
- Open the form in Form view, and on the Records menu, click Data Entry.
- Try to type any value into the Customer text box. Note that the following message appears in the status bar:
To make changes to this field, first save the record.
- Press the ESC key twice to undo the new record.
- Type 1234 in the OrderID text box. Press the TAB key twice to move to the Customer text box, enter a value, and then press ENTER. Note that you receive the following error message:
The current field must match join key '?' in the table that servers as the 'one' side of one-to-many relationship. Enter a record in the 'one' side table with the desired key value, and then make the entry with the desired join key in the 'many-only' table.
- Press the ESC key twice to undo the new record.