Ignoring address for a time and looking at names and history, your table
structure would be something like this:
tblName
NameID (primary key, or PK) - use autonumber as the data type
FirstName
LastName
etc.
tblHistory
HistoryID (PK) - autonumber
NameID (foreign key, or FK) - use Number as the data type
VisitDate
Reason
etc.
Click Tools > Relationships. In the Relationships window select each table
and click add. Close the box. Drag NameID from one table to the other, and
drop it on NameID in the second table. Click Enforce Referential Integrity,
then Create. Close the Relationships window.
Make a form (frmNames) based on tblNames. Better yet, make a query
(qryNames)based on tblNames, sort the names alphabetically, and base the form
on the query. You can also use a query to combine FirstName and LastName.
Help has more on that if you are interested, but it's not to the immediate
point. To base the form on either the table or the query, select Create Form
in Design View in the database window. A blank form will show up. Double
click the small box with a solid rectangle in the middle at the top left of
the form. It is where the rulers would intersect. That will open the form's
property sheet. Click the Data tab, click Record Source, click the down
arrow, and select the table or query. A list of fields will appear in their
own box. Drag the fields you need onto the form. You needn't drag NameID
and such. They are part of the form's record set, whether or not they appear
on the form. Leave room on the form for history, and save the form. Repeat
the process to build a form based on tblHistory. Save it as fsubHistory. Go
to the database window (the window with tabs for forms, queries, etc. that
appears when you start Access). Pressing F11 should bring it to the front.
With frmNames open in Design view, drag the icon for fsubHistory onto
frmNames. Switch to form view and take a look. Try entering some names and
histories.
You do not need to enter primary keys or foreign keys. The autonumber PKs
are assigned automatically. If you create a record, then start to create
another record but stop before you have entered any data, it will still "use
up" a number. Later, when you go back to enter a new record you will see
that the first record is 1 and the new one is 3. 2 is gone. It doesn't
matter. If you need a sequential number there are ways of doing that, but
let's not get into that just now.
The autonumber PK is assigned automatically as soon as you start a new
record. When you add a record to History (fsubHistory is the subform to
frmNames), it will automatically, because of the relationship between the
tables, have NameID filled in for the FK field. Your don't need to do
anything else to make this happen. If NameID is 1, every record created in
fsubHistory will also have 1 in the NameID field. Those history records will
always be associated with that Name record. No other History records will
have the same number for NameID.
You could do the same general process to establish a relationship between
History and Medicines. The Medicine form would be a subform of the History
form, which is in turn a subform of the Name form. These are nested
subforms, like one of those Russian wooden dolls.
There are lots of additional features, like using a combo box to select a
name and view all of the related information (rather than having to scroll
through all of the records to find a name). If the basic design works we can
get to that.
I'm still not quite sure what's going on with the Address table. Address is
often part of something like a Patient table, along with name and other
personal information unique to an individual.