I got rid of the Lookups. You will use the same idea, jut do it on the forms and not in the tables. See the form below. I built the combos on the form instead.
You have one big problems in your data. You have made a mismatch on most of the records.
I ran a query to fix it. Hopefully I did it correctly.
You picked holes from the wrong course. In most records you will have for example a round for Augusta. The shots are related to the round ID, but the holes are the corresponding holes at another course say Pinehurst. So I made a translation query. If the round was Augusta then replace the the ID for the hole so that hole 1 at Pinehurst would be replaced with the ID for hole 1 at Augusta. This kind of made my head spin, but I think it is correct.
You do not need ShotDate in the shot table because all shots are related to a round and a round has a date. You could display that in the subform if you wanted by doing a join to the round table.
There is a slight difference from storing a key to simply storing a value. If you are simply storing a value from a lookup table then do not call it an FK unless you are storing the corresponding FK. In Club_FK you are simply storing the actual name of the Club. You could store the PK value as an FK. You just want to make sure you are not eventually going to want extra fields. For example you think you just have to store ClubType.
You then are just using a value and no need to relate back to the table.
Then you decide for reports you need a long name
5w Five Wood
then you decide that you want a category
5i Five Iron Iron
sw Sand Wedge Wedge
Now you have related information and those lookups and now real foreign keys. That means you have to store a PK which can be an autonumber or you can simply make your current ClubType (5w) the PK.
Do not use calculated fields. Do your calculations in a query when you need them. Get rid of the Shot in the table.
Here is my demo form. It has some bells and whistles to demonstrate concepts. Some of this is just way easier to show than explain. I would have separate forms for adding courses, rounds, clubs, etc.
1. The combo allows you to pick a Course. The CourseID field is hidden.
2. The Round subform is linked by CourseID_FK to the Course combobox. I do not allow you to add a round here, but probably could.
3. I use conditional formatting in the Round subform to show the current round
4. There is code in this subform in the current event to set the value of txtLink in red. (This can be made invisible, but shown for demo purpose)
5. The Shot subform is linked to txtLink by RoundID _FK to txtlink
6. There is code in the Hole combo to select only those holes for that course based on the course in the cmboCourse.
7. I calculate shot using a calculated control. This can also be done in a query. Better than a calculated field.
8. I added some code to ensure all fields are filled in. You can do this using the required property, but then you will get the default cryptic error message.
As mentioned prior if you are ever going to play two rounds on the same course in the same day, you will need to add some field to differentiate.
I like to break things up, instead of having one form to do everything. Some people try to do to much in a single form such as adding editing courses, searching. I often separate adding, editing, and navigating. So From here I might have a button next to cmboCourses that brings up a form to add a course.
V1 fixes the validation of the data entry.