How to Search Multiple Columns for the Same Item in Microsoft Access
Question details
The user needs to find a way to search for specific item codes that are spread across up to 12 different columns within a single Microsoft Access table.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Managing a database table where repeated attributes (like item codes) are stored in separate fields rather than in a related child table.
- Observed behavior
- Standard SQL queries struggle to efficiently search across horizontally spread attributes, making database searches, form creation, and query design overly complicated.
Before modifying your database structure or running complex queries, make sure to create a backup copy of your Access database to prevent accidental data loss during the transition.
Normalize Your Database Structure (Recommended)
The most robust and permanent solution is to redesign your database by creating a related child table that stores one item code per row.
Storing multiple identical attributes in separate columns (e.g., Item1, Item2, Item3) violates the principles of relational database normalization.
By moving these columns into a separate normalized table linked to your main records, you eliminate repeated fields. This makes future searches, filtering, and form configurations significantly simpler and more scalable.
Navigate to Create > Table Design. Create a new table with a Primary Key, a Foreign Key to link to your main record, and a single 'ItemCode' column.
Use Append Queries to move the existing data from the 12 columns in your main table into the new child table as individual rows.
Once the data is safely migrated and verified, open your original table in Design View and delete the 12 repeated item columns.
Create a new query joining the main table and the new child table. You can now easily search the single 'ItemCode' column for any value.

Use OR Criteria in Query Design View
If you cannot change the existing database design, you must configure a query that explicitly checks every single item column for your search term.
Create a Dynamic UNION Query
A UNION query can temporarily restructure your unnormalized table by vertically stacking your multiple columns into a single column for easier searching.
Manage Data Effortlessly with WPS Office
Since this specific database structuring issue relates to Microsoft Access, WPS Office does not directly resolve it. However, if you are looking for a highly compatible, free, and lightweight alternative to Microsoft Office for your daily data management, WPS Spreadsheet is an excellent choice for organizing lists, tables, and flat-file databases.
- 1. Download and Install: Visit the official WPS website to download and install the free office suite.
- 2. Open Your Data: Import your exported database tables or Excel spreadsheets directly into WPS Spreadsheet.
- 3. Analyze and Search: Use powerful built-in functions, VLOOKUP, and advanced filters to search across your datasets easily.

Frequently Asked Questions
Why shouldn't I use multiple columns for similar items in Access?
Storing similar items in separate horizontal columns violates database normalization rules. It makes querying complex, scaling difficult, and increases the risk of empty fields and data entry errors.
Can I use the IN operator across multiple columns?
No, the IN operator is designed to check for multiple possible values within a single column. To search across multiple separate columns, you must use OR criteria for each specific column.
What is a UNION query and how does it help?
A UNION query combines the results of several SELECT statements into a single column. It helps in this scenario by temporarily restacking your horizontally spread item columns vertically, allowing you to search them as if they were a single normalized column.




