I have inherited a database and after examining the tables I have discovered
that there are no primary keys.
Pretty much *all* tables should have a primary key. You can set the
Autonumber field as your primary key. This way, your primary key is
considered "meaningless", so you should never have a reason to change it's
value.
Most of the data is kept in one huge table. Could this be the reason it takes
3-4 minutes to open? there are only 145 records in the main table.
You have what is euphamistically known as an Access spreadsheet. A form
bound to a table with only 145 records should open fairly fast, although
there are many variables that can come into play, including, but not limited
to:
1.) Have you done a Compact and repair recently?
2.) Is the database located on a server (ie., is there a network that
separates you from your data)? If there is a network, is it a fast LAN (Local
Area Network), or are you attempting to open the database over a slow WAN
(Wide Area Network)?
Using a wan with ms-access? How fast, how far?
http://www.members.shaw.ca/AlbertKallal/Wan/Wans.html
3.) Do you have Name Autocorrect enabled? Do you have SubDatasheets set to
[Auto]?
4.) If your database is located on a server, has it been split into two
databases, commonly known as a "Front-End" (FE) application file and a
"Back-End" (BE) data file? If it has been split, does each user have their
own copy of the FE on their local hard drive? And, if it is split, has a
persistent connection been established?
5.) What about the hard drive itself? Have you recently cleared out
temporary files and other junk, and then performed a defragmentation?
Here is an article written for Multiuser applications, but it is good to
follow these practices even for single-user applications:
Implementing a Successful Multiuser Access/JET Application
http://www.accessmvp.com/TWickerath/articles/multiuser.htm
Tom Wickerath
Microsoft Access MVP
http://www.accessmvp.com/TWickerath/
__________________________________________