Click any image to view a larger version



Last Updated 6 Jan 2019                         Difficulty level :   Easy

Unlike other databases, Access allows you to use lookup fields at table level.
Doing so, allows you to have combo boxes to guide end users with a list of available choices
The lookup field can be based on a table or query; value list or field list.

Although at first sight this may seem an attractive option, experienced developers normally advise strongly against their use.
Several reasons are provided in an often quoted explanation by Arvin Meyer – The Evils of Lookup Fields in Tables

The main issue is that a lookup field in a table displays the looked-up value e.g. CompanyName but actually stores a reference value such as CompanyID
The result is that any query using that lookup field to sort by company name won't work. Nor will any query using that company name for filter criteria

Lookup fields mask what is really happening and hide good relational methodology from the user.
Furthermore, the database cannot be properly upsized to another database engine such as SQL Server (without removing all the lookup fields) because no other database engines use or understand them.

A discussion thread at Access Forums.net has exposed a further reason against their use.

Exporting the table data to Excel will produce different results depending on how the export was done.
I am very grateful to regular forum contributor June7 for bringing this disparity to my attention

I have created an example database to illustrate this point :   Table Lookups  (approx 0.4 MB zipped)

This includes a table tblCars with two lookup fields:
a)   Company – based on a lookup table tblCompany
b)   Colour – based on a value list

Both lookup fields have a number datatype. Each field has a hidden bound autonumber ID column with a text description column

TableLookupsDesign

The data is displayed using the text description but the number value is stored in the table

TableLookupsForm

TablelookupsData

There are some who argue this is a good idea as the display shows what the user needs to see whilst the number datatypes used to store the data reduce the file size.

If the data is exported to Excel the number values are exported as these are the saved values

TableLookupExcelExport1

However, if you tick the 'Export Data with formatting and layout' option before exporting, the text descriptions are exported instead!

TableLookupExcelExport2

Once again, some may argue this is a good thing in that users can select whichever output they require
However, I would disagree with that viewpoint totally due to the confusion it creates for end users

It should be remembered that end users should directly never view or edit data in tables or queries.
All data entry and editing should only be done using forms.

All lookups should therefore be applied using combo boxes or list boxes on forms.
This produces the same experience for end users but avoids all the issues with using lookup fields in tables



Colin Riddington           Mendip Data Systems                 Last Updated 6 Jan 2019



Return to Access Articles Page Return to Top