A family of Microsoft relational database management systems designed for ease of use.
Whether you use a subform within a Customers parent form, or a stand-alone form bound to the table which models the many-to-many relationship type, the key to making the form user friendly is to bind a combo box to the foreign key column, setting up the combo box so that the numeric bound column is hidden, and the text value from the referenced table is shown in the control.
The only real difference between a subform and a stand-alone form is that the latter would have combo boxes bound to both foreign key columns, whereas the former would have only one combo box, bound to the ProductID column. The correct CustomerID vale would be inserted automatically into the row in the table by virtue of the LinkMasterFields and LinkChildFields properties of the subform control each being set to CustomerID.
Taking a customer combo box as an example it would be set up like this:
ControlSource: CustomerID
RowSource: SELECT CustomerID, FirstName & " " & LastName FROM Customers ORDER BY LastName, FirstName;
BoundColumn: 1
ColumnCount: 2
ColumnWidths: 0cm
If your units of measurement are imperial rather than metric Access will automatically convert the unit of the last one to inches. The important thing is that the dimension is zero to hide the first column.
Alternatively, you can concatenate the names so that the last name is first, which would be better with a large list of names as it allows the user to enter the initial characters of the last name and progressively go to the first match as each character is entered:
RowSource: SELECT CustomerID, LastName & ", " & FirstName FROM Customers ORDER BY LastName, FirstName;
A products combo box would be set up in the same way, other than that the visible value would be that of a single Product column, not a concatenation of the values of two columns.