I am a bit confused with your design.
To recap...
Code:
Main table
busID, ProgID, FuctionID
SubProcess
BusID, Process, Subprocesses
functions table
FuncID, FuncName
main table
BusID, ProgID, FuncID Process, Subprocess, Program
Junction table
BusID, ProgID, FuncID
When I look at your Junction table, it has the same fields as the "Main table".
Let's start over...
When giving the name of your table, also identify the primary key, and where appropriate, the foreign key.
tblName
PKFieldName - primary key
tblJunctionName
PKFieldName - foreign key to tblName
etc.
...Moving on
Assuming you have defined your relationships correctly, and you have have used the Relationship tool (from the menu, "Tools" -> "Relationships", add your tables, click and drag the primary key from one table to the foreign key in the related table, and enforce referential integrity)
There are two approaches to easily creating the junction records. Assumptions
tblMain1 with
PK1 as the primary key,
tblMain2 with
PK2 as the primary key, and the
tblJunction with
PK1 and
PK2 as the foreign keys that reference tbleMain1 and tblMain2.
1) Create a form based on a main table, tblMain1. Create a subform based on tblJunction. Hide the text box PK1 and turn the text box for PK2 to a combo box that references tblMain2. Embed the subform into the main form. By creating your relationships before creating the form, Access will automatically link your form / subform.
...or
2) Create a form based on tblJunction. Convert PK1 to a combo box that points to tblMain1 and PK2 to a combo box that points to tblMain2.
I find the first approach more functional since I can see the related records in one form. The second approach may be easier for data entry.
Make sure to have the "Properties" window open when working with the form design (from the menu, "View" -> "Properties")
Richard