Great!
If you lived near St. Louis, you could take the college course that I teach.
;-)
Allen mentioned one book by Hernandez. To that I'll add "Database Design for
Mere Mortals" also by Michael Hernandez for basic database design and
normalization.
http://safari.oreilly.com/0201752840
As for indexes, every table should have a primary key. Hopefully it is only
one field. Access automatically creates an index for primary key fields.
If your queries join two or more tables, go to the Relationships window and
see if a relationship is defined between the tables involved. Hopefully they
are and Referential Integrity is enables as this will also create an index
with the Foreign Key in the other table. If not, see if you can link the
tables and turn on RI. There's a very good chance that it can not. In that
case mark sure that the linked fields in both tables have indexes.
Also index any field that is part of the Where Clause or Order By.
Warning: Indexes aren't free. They also take up space and can slow down
inserts and updates. Don't go overboard on the indexing. As mentioned before
Access will automatically create an index for Primary Key fields. It will
also create indexes for field with any of the following in any part of the
field names: ID; key; code; num. In fact Access has no problem creating two
or more indexes on the same field. For example if your Primary Key is named
PK_ID, you will have two indexes for the same field which is wasteful.
Now for your query: INTO 1stVisit02
Often inserting records into another table is a sign of problems. Normally
you just want to grab the data from the primary tables as needed. Maybe now
that the query is working faster, you don't need the 1stVisit02 query. Moving
records from one table to another is often a mistake and a sign that the data
isn't normalized properly. An exception is when importing data from other
files and programs.