Development on Access was started in the mid-80s under the project name "OmniBase".
- 1.0 - released Nov. 1992, had much of a beta version, many bugs
- 1.1 - released May 1993, considered as the first stable version
- 2.0 - released April 1994, considered as the first production quality version
- 2.0-SP1 ("2.5" Build 1606) and Y2K-fix ("2.5" Build 2825) - released April 1999, improved stability for large databases (>100MB)
- 95 / 7.0
- 97 / 8.0
- 2000 / 9.0 - last version to run on Win95 (unverified)
- XP / 10.0 - last version to run on Win98 (unverified)
- 2003 / 11.5 - seems to be the only version of Access that has not introduced a new .mdb file format. Last version to run on WinXP-SP1 or to support Workgroup (.mdw) files or permissions.
- 2007 / 12.0
- 2010 / 14.0
- 2013 / 15.0
- 2016 / 16.0
Storage and Objects
- Forms (for managing data)
- Reports (for printing data)
- Data Access Pages (Web Forms)
- Macros (Scripts)
- Modules (Program Code and Functions)
Everything (except "Data Access Pages") is stored in a single File (.mdb, .accdb).
Object Naming: Object names can contain any characters from the ASCII range (32..255) except Bang ("!"), Dot (".") and Square Brackets ("") and cannot start or end with a Blank (" ").
Access allows multiple users to work with .mdb Files concurrently on the network (LAN). Experience shows that even with large databases, tweaking the indexes can provide acceptable performance. More than 10 concurrent users are not advisable as corruption, even irreparable, would likely occur.
Access provides quite reliable transaction handling, but business-critical data should in no case reside in .mdb files. Explicit transactions can be wrapped around large updates for notable performance gains.
Query performance issues can be analyzed by looking at the querie´s execution plan. Setting the following registry key value:
JETSHOWPLAN:REG_SZ="ON"creates a file named "SHOWPLAN.OUT" in the working directory containing the execution plans of all queries.
Microsoft Jet contains an undocumented function called ISAMStats that shows various internal values.
ISAMStats (StatNum As Long [, Reset As Boolean]) As Longwhere StatNum is one of the following values:
0 - number of disk reads
1 - number of disk writes
2 - number of reads from cache
3 - number of reads from read-ahead cache
4 - number of locks placed
5 - number of release lock calls
A sample showing the number of disk reads since (??):
Dim lngReads As Long
lngReads = DBEngine.ISAMStats (0, False)
A hidden table named [MSysObjects] contains a list of all database objects. The column [Type] has the following meaning:
- 1 - Tabelle in aktueller Datenbank
- 4 - Verknuepfte Tabelle (extern, ODBC)
- 5 - Abfrage
- 6 - Verknuepfte Tabelle (extern, JET)
- 8 - Beziehungen
- -32756 - Datenzugriffsseite
- -32761 - Modul
- -32764 - Bericht
- -32766 - Makro
- -32768 - Formular