It is straightforward to establish a one to many relationship by linking the primary key in the one table to the foreign key in the many table. Access shows the relationship with a single arrow. How can I (in or out of VBA code) establish a one to many relationship from a table whose primary key consists of two contiguous fields (very common) to a table containing the same two fields as its foreign key?
![]() |
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don't do it. |
SIGN IN | Not a member? | REGISTER | PLUS MEMBERSHIP |
-
One to many – Multiple field keys (Access 2002/SP2)
Home » Forums » AskWoody support » Productivity software by function » MS Access and database help » One to many – Multiple field keys (Access 2002/SP2)
- This topic has 6 replies, 3 voices, and was last updated 22 years, 4 months ago.
AuthorTopicJohn Littell
AskWoody PlusFebruary 14, 2003 at 5:50 pm #383399Viewing 1 reply threadAuthorReplies-
WSAlexya1
AskWoody LoungerFebruary 14, 2003 at 8:41 pm #653771Hi there…
This MAY be a waste of time since I only have Access 97 SR2 at work, but I’ll give you this answer and hope it’s close to how you do it in that version.
k… I’ve attached an example for you to see… Here’s how I do it…
1) For the One side of your relationship… from table design mode… you just select both fields (rows in the fld definitions) that will make up the key, right click and select primary key… (Make sure the indexing is as you want it…) … You should see the key next to both field names… Save the table design…
2) Then in the Many side… table design mode… Ensure that the two corresponding have indexing “Yes (Duplicated Ok)” … Save the table design…
3) Then add both tables… in order (tblOne first, then tblMany) to the relationships window… Drag the first field of the primary key in the One table over to the first foreign key in the Many table… A window should pop up where you define the relationships…. Fill in the second field of the primary key and the corresponding one in the Many table… Check the “Enforce Referential Integrity” option… Click OK… As soon as the window disappears you should see the symbols for One-To-Many relationships in both places…All done…
Hope this makes sense… and HOPE it works the same in 2002… Let me know how it goes… I don’t get the opportunity to answer questions on here often…
-
WScharlotte
AskWoody Lounger -
John Littell
AskWoody PlusFebruary 15, 2003 at 8:06 pm #653935Trudi,
Thank you very much for the information. It worked exactly as you said it would. Now the relationship window shows two one to many connection link lines one on top of the other. I proved, I think, that the two links are parts of one combined link: deleting one link (line) deleted them both. (Incidentally, while I would have liked to see from your .mdb attachment if your example looked like what I have, I was unable to open it. It seems that when Access 2002 opens an order DB for the first time it has to be able to write to it. I got an error saying that the DB was read only.)Thanks again, John
-
-
WScharlotte
AskWoody LoungerFebruary 15, 2003 at 2:05 am #653830Are you working with ADO or DAO? Here’s an ADO routine that demonstrates creating a relationship in code. If you are working with a multifield key, you add the individual fields by appending both columns.
Sub CreateRelationship(strDBPath As String, _ strForeignTbl As String, _ strRelName As String, _ strFTKey As String, _ strRelatedTbl As String, _ strRTKey As String) Dim catDB As ADOX.Catalog Dim tbl As ADOX.Table Dim key As ADOX.key ' Note that VB "enforces" the lowercasing of ' "key" in ADOX.key. Set catDB = New ADOX.Catalog ' Open the Catalog object. catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source =" & strDBPath Set key = New ADOX.key ' Create the foreign key to define the relationship. With key ' Specify name for the relationship in the Keys collection. .Name = strRelName ' Specify the related table's name. .RelatedTable = strRelatedTbl .Type = adKeyForeign ' Add the foreign key field to the Columns collection. .Columns.Append strFTKey ' Specify the field the foreign key is related to. .Columns(strFTKey).RelatedColumn = strRTKey End With Set tbl = New ADOX.Table ' Open the table and add the foreign key. Set tbl = catDB.Tables(strForeignTbl) tbl.Keys.Append key Set catDB = Nothing End Sub
-
John Littell
AskWoody PlusFebruary 15, 2003 at 8:13 pm #653940 -
WScharlotte
AskWoody Lounger
-
-
Viewing 1 reply thread -

Plus Membership
Donations from Plus members keep this site going. You can identify the people who support AskWoody by the Plus badge on their avatars.
AskWoody Plus members not only get access to all of the contents of this site -- including Susan Bradley's frequently updated Patch Watch listing -- they also receive weekly AskWoody Plus Newsletters (formerly Windows Secrets Newsletter) and AskWoody Plus Alerts, emails when there are important breaking developments.
Get Plus!
Welcome to our unique respite from the madness.
It's easy to post questions about Windows 11, Windows 10, Win8.1, Win7, Surface, Office, or browse through our Forums. Post anonymously or register for greater privileges. Keep it civil, please: Decorous Lounge rules strictly enforced. Questions? Contact Customer Support.
Search Newsletters
Search Forums
View the Forum
Search for Topics
Recent Topics
-
Perplexity Pro free for 12 mos for Samsung Galaxy phones
by
Patricia Grace
10 hours, 38 minutes ago -
June KB5060842 update broke DHCP server service
by
Alex5723
9 hours, 10 minutes ago -
AMD Ryzen™ Chipset Driver Release Notes 7.06.02.123
by
Alex5723
13 hours, 12 minutes ago -
Excessive security alerts
by
WSSebastian42
8 hours, 53 minutes ago -
* CrystalDiskMark may shorten SSD/USB Memory life
by
Alex5723
22 hours, 40 minutes ago -
Ben’s excellent adventure with Linux
by
Ben Myers
5 minutes ago -
Seconds are back in Windows 10!
by
Susan Bradley
9 hours, 49 minutes ago -
WebBrowserPassView — Take inventory of your stored passwords
by
Deanna McElveen
19 hours, 44 minutes ago -
OS news from WWDC 2025
by
Will Fastie
23 hours, 54 minutes ago -
Need help with graphics…
by
WSBatBytes
59 minutes ago -
AMD : Out of Bounds (OOB) read vulnerability in TPM 2.0 CVE-2025-2884
by
Alex5723
1 day, 14 hours ago -
Totally remove or disable BitLocker
by
CWBillow
13 hours, 16 minutes ago -
Windows 10 gets 6 years of ESU?
by
n0ads
16 hours, 31 minutes ago -
Apple, Google stores still offer China-based VPNs, report says
by
Nibbled To Death By Ducks
2 days ago -
Search Forums only bring up my posts?
by
Deo
4 hours, 39 minutes ago -
Windows Spotlight broken on Enterprise and Pro for Workstations?
by
steeviebops
2 days, 12 hours ago -
Denmark wants to dump Microsoft for Linux + LibreOffice
by
Alex5723
2 days, 5 hours ago -
How to get Microsoft Defender to honor Group Policy Setting
by
Ralph
2 days, 13 hours ago -
Apple : Paragon’s iOS Mercenary Spyware Finds Journalists Target
by
Alex5723
2 days, 23 hours ago -
Music : The Rose Room – It’s Been A Long, Long Time album
by
Alex5723
3 days ago -
Disengage Bitlocker
by
CWBillow
2 days, 14 hours ago -
Mac Mini M2 Service Program for No Power Issue
by
Alex5723
3 days, 2 hours ago -
New Win 11 Pro Geekom Setup questions
by
Deo
4 hours, 33 minutes ago -
Windows 11 Insider Preview build 26200.5651 released to DEV
by
joep517
3 days, 9 hours ago -
Windows 11 Insider Preview build 26120.4441 (24H2) released to BETA
by
joep517
3 days, 9 hours ago -
iOS 26,, MacOS 26 : Create your own AI chatbot
by
Alex5723
3 days, 13 hours ago -
New PC transfer program recommendations?
by
DaveBoston
1 day, 18 hours ago -
Windows 11 Insider Preview Build 22631.5545 (23H2) released to Release Preview
by
joep517
3 days, 17 hours ago -
Windows 10 Build 19045.6029 (22H2) to Release Preview Channel
by
joep517
3 days, 17 hours ago -
Best tools for upgrading a Windows 10 to an 11
by
Susan Bradley
3 days, 6 hours ago
Recent blog posts
- Ben’s excellent adventure with Linux
- Seconds are back in Windows 10!
- WebBrowserPassView — Take inventory of your stored passwords
- OS news from WWDC 2025
- Best tools for upgrading a Windows 10 to an 11
- Master patch listing for June 10, 2025
- 24H2 may not be offered June updates
- June 2025 updates are out
Key Links
Want to Advertise in the free newsletter? How about a gift subscription in honor of a birthday? Send an email to sb@askwoody.com to ask how.
Mastodon profile for DefConPatch
Mastodon profile for AskWoody
Home • About • FAQ • Posts & Privacy • Forums • My Account
Register • Free Newsletter • Plus Membership • Gift Certificates • MS-DEFCON Alerts
Copyright ©2004-2025 by AskWoody Tech LLC. All Rights Reserved.