How to Create an Access Form for Related Items in the Same Table
Question details
The user needs to build a Microsoft Access form that displays the names of related items from a single table, utilizing a self-referencing junction table that only stores item IDs.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Building a relational database interface where items in a table relate to other items in the exact same table (e.g., related parts), and presenting these relationships through a user-friendly form.
- Observed behavior
- The user wants to view actual item names on the form instead of the numeric IDs stored in the junction table, and ensure the self-referencing many-to-many relationship displays correctly.
Ensure your database relationships are already established with an Item table containing an ItemID and ItemName, and a Ref junction table configured to handle the many-to-many relationships.
Configure a Combo Box and Subform for the Junction Table
Use a combo box in your subform to display the referenced item's name from the main table while storing its ID in the underlying junction table.
When dealing with a self-referencing many-to-many relationship, the junction table stores the item IDs, but the user interface should display meaningful names. A combo box effectively bridges this gap by looking up the name from the main Item table.
To make the relationship bidirectional, remember that a standard junction table structure requires two separate records (e.g., Item A linking to Item B, and Item B linking to Item A) so the relationship is visible from either record's perspective.
Create a continuous form or datasheet based on the Ref junction table. Insert a combo box control for the referenced item ID field.
Open the Property Sheet for the combo box. Navigate to the Data tab and set the 'Row Source' property to a query that selects the ItemID and ItemName from the main Item table.
Switch to the Format tab in the Property Sheet. Set 'Column Count' to 2. Set the 'Column Widths' property to 0";1" (or similar) to hide the first column (ItemID) and display only the second column (ItemName).
Verify that the 'Bound Column' property on the Data tab is set to 1. This ensures that when a user selects a readable item name, Access writes the corresponding numeric ItemID into the Ref table.
Embed the subform into your main Item form. Select the subform control and set 'Link Master Fields' and 'Link Child Fields' to your primary ID field to ensure the displayed related items are correctly filtered.

Looking for a lightweight, free alternative to Microsoft Office?
While Microsoft Access is used for complex database management, WPS Office is an exceptional, free alternative for all your document, spreadsheet, and presentation needs. Enjoy high compatibility with Microsoft Office formats in a highly efficient and lightweight suite.
- 1. Download the software: Visit the official WPS Office website and download the installation package tailored for your operating system.
- 2. Install the suite: Run the installer and follow the simple on-screen instructions to get your lightweight office suite ready in minutes.
- 3. Open existing documents: Launch WPS Office and open your .docx, .xlsx, or .pptx files seamlessly without losing any original formatting.

Frequently Asked Questions
Why does my combo box display an ID number instead of the item name?
This happens if the Column Widths property is not configured correctly. Ensure the Column Count is set to 2 and the Column Widths property is set to 0";1" to completely hide the first column (ID) and show the second (Name).
How do I show self-referencing relationships in both directions automatically?
Standard junction tables are unidirectional. To make them bidirectional automatically without double data entry, you can either trigger an append query via VBA on the AfterUpdate event to insert the reciprocal row, or use a UNION query to compile the relationships from both perspectives.
What exactly is a self-referencing relationship in Access?
A self-referencing relationship occurs when a field in a table relates back to the primary key of that exact same table. Common examples include an Employee table where a 'ManagerID' references the 'EmployeeID', or an Inventory table where items are sub-components of other items.
Can I enforce referential integrity on a self-referencing junction table?
Yes, you can enforce referential integrity. In the Access Relationships window, add your primary Item table twice (Access will automatically create an alias name for the second instance) and link your junction table fields to both instances.




