ACC: Lookup Wizard Fails with Certain Data Types in Tables
ID: Q164098
|
The information in this article applies to:
-
Microsoft Access versions 7.0, 97
SYMPTOMS
Moderate: Requires basic macro, coding, and interoperability skills.
When you use the Lookup Wizard in Design view of a table to look up a
Currency, Date/Time, or Hyperlink field in another table, you may receive
the following error messages
You entered an expression that has an invalid reference to the
property |.
and then
Microsoft Access couldn't launch the LookUp Wizard.
CAUSE
The Currency, Date/Time, and Hyperlink data types do not contain a
DisplayControl property. When you use one of those data types as the bound
column in your lookup field, the Lookup Wizard sets your lookup field to
the same data type and tries to set the DisplayControl property for that
field.
The error occurs with the Lookup Wizard under the following conditions:
- If the table you are looking up does not have a primary key field,
and the bound field you select in the Lookup Wizard is of data type
Currency, Date/Time, or Hyperlink.
- If the table you are looking up has a multi-field primary key, and the
bound field you select in the Lookup Wizard is of data type Currency,
Date/Time, or Hyperlink.
- If the primary key in the table you are looking up is of data type
Currency or Date/Time; Microsoft Access does not allow you to create
a primary key with a Hyperlink data type.
RESOLUTION
You can work around this behavior in two ways:
- You must include a field of data type Text, Number, or Yes/No as the
bound column for the lookup field in your table because those data
types have a Display Control property.
- If you are trying to look up a Currency field, you can manually create
the lookup field using a Double Number field instead of Currency.
Method 1: Include a Text, Number, or Yes/No Field as the Bound Column
The following example shows how you can use the Lookup Wizard to display a
Currency field by adding a second field of data type Text, Number, or
Yes/No as the bound column:
- Open the sample database Northwind.mdb.
- Create the following new table in Design view:
Table: LookupCurrency
---------------------------
Field Name: ID
Data Type: AutoNumber
Field Name: UnitPrice
Data Type: Lookup Wizard
Table Properties: LookupCurrency
--------------------------------
PrimaryKey: ID
- In the Lookup Wizard dialog box, click "I want the lookup column to
look up the values in a table or query," and then click Next.
- In the "Which table or query should provide the values for your lookup
column?" dialog box, click Order Details, and then click Next.
- In the "Which fields contain the values you want included in your
lookup column?" dialog box, add OrderID and UnitPrice to the Selected
Fields box, and then click Next. OrderID is a Number field, and
UnitPrice is a Currency field.
- In the "How wide would you like the columns in your lookup column?"
dialog box, point to the right border of the OrderID column heading
until your pointer changes to a cross with arrows pointing left and
right. Then drag the column border to the left until the column
disappears. Click Next.
- In the "Choose a field that uniquely identifies the row" dialog box,
click OrderID, and then click Finish.
- Click Yes when you see the message that the table must be saved before
relationships can be created. Save the table as LookupCurrency.
- Switch the table to Datasheet view. Note that the combo box in the
UnitPrice field displays Currency values from the Order Details table.
However, the data that is actually stored in that field is the OrderID
because OrderID is the bound column.
If you repeat steps 1 through 9, but omit the OrderID field (a Number
field) in step 5, you receive the error message mentioned in the "Symptoms"
section.
Method 2: Use a Double Number Field to Look Up Currency
- Open the sample database Northwind.mdb.
- Create the following new table named Table1:
Table: Table1
-------------------------------
Field Name: Fields ID
Data Type: AutoNumber
Indexed: Yes (No Duplicates)
Field Name: Field1
Data Type: Number
Field Size: Double
Format: $#,##0.00
- Click the Lookup Tab for Field1 and change the Display Control property
to Combo Box.
- Click in the RowSource property builder.
- Select the Order Details Table to Lookup data from.
- Drag the Unit Price field to the query grid.
- Close the query, and then close and save the table. Click No to the
prompt "Do you want to create a primary key?"
- Open the Table1 table in Datasheet view. Note that you are able to
look up Currency data in the Field1 field.
STATUS
Microsoft has confirmed this to be a problem in Microsoft Access 7.0
and 97.
MORE INFORMATION
Steps to Reproduce Problem
CAUTION: Following the steps in this example will modify the sample
database Northwind.mdb. You may want to back up the Northwind.mdb file
and perform these steps on a copy of the database.
- Open the sample database Northwind.mdb.
- Create the following new table named Table1:
Table: Table1
-------------------------------
Field Name: Fields ID
Data Type: AutoNumber
Indexed: Yes (No Duplicates)
Field Name: Field1
Data Type: Lookup Wizard
- Select the default option to look up values in a table.
- Select the Order Details table in the "Which table or query should
provide the values for your lookup column?" dialog box.
- Select the UnitPrice field in the "Which fields contain the values you
want included in your Lookup column?" dialog box.
- Note that when you click Finish on the last screen of the wizard, you
receive the error message mentioned in the "Symptoms" section.
Keywords : kberrmsg TblFldp
Version : 7.0 97
Platform : WINDOWS
Issue type : kbbug
Last Reviewed: April 28, 1999