I don't have a lot of time right now to setup a sample, let me try to explain the concepts with what we have developed.
Go to our web site
The first two tabs contain information about the customer and the third tab shows the transactions for that customer. You can navigate from tab to tab by clicking on the tab text, (IE: clicking on History will take you to the history tab.) The customer would be equivilant to your patient database. The third tab is a transactional database that in our system includes all historical contracts, change orders, invoices, and payments. Now in our system we have seperate entry screens for each type of transaction, then we have a posting screen that puts them all into a history table. This history table is actually keyed by a incremented document number and has a secondary index for customer number. Your appointment table would be similar to this, however you would want to structure it by date and then time slot.
The important concept to understand is the difference between master tables and transactional tables. The master table contains information that you will generally put in once and seldom change. (IE the customers name, address, eye color, ect.) The transactional table will contain information that occurs on a regular basis. (IE: appointments, billings, reminders, ect..) The master table will be keyed by customer number or whatever is the unique identifier for that data set. The transactional table MUST be keyed differently. As I stated in my prior post I would probably key your appointment table by date/time slot. Other programers might work out a different, but perfectly logical system that would order the appointments in the desired order. By creating a routine that automatically inserts records into this table, you eliminate the need for the user to have to insert records, show any blank time on the screen as open. However you will also have to trap for when the user tries to delete a record, block the default behavior from taking place, and then blank out the customer information from that record.
I am guessing from your questions that you do not have any/much experience with creating databases and forms. It is going to be very difficult to create a working application without a strong knowledge of relational databases and graphical user interfaces. As you create your app, remember that Murphy's law is allways in effect with computer programing.
I will try to work on some better examples when I have some time. I'm not sure how to get them to you though.
James D. Howard