Access
Ross-spencer (Talk | contribs) (MS Access build versions) |
Ross-spencer (Talk | contribs) (Additional link to developer resource and Access 2000 versions) |
||
Line 39: | Line 39: | ||
Access 2002 Jet 4.0 Jet 4.0 | Access 2002 Jet 4.0 Jet 4.0 | ||
− | The controller used to read and write the format by Access versions did change. The version of Access and its build number can help us to understand the version of the DLL used to interact with the format. The version and build number is embedded in the MDB objects (as described as part of its internal structure above) so can be easily extracted. Build numbers and DLL versions are described below ([http://support.microsoft.com/kb/248710 KB Article 248710]): | + | The controller used to read and write the format by Access versions did change. The version of Access and its build number can help us to understand the version of the DLL used to interact with the format. The version and build number is embedded in the MDB objects (as described as part of its internal structure above) so can be easily extracted. Build numbers and DLL versions are described below ([http://support.microsoft.com/kb/248710 KB Article 248710] and [http://support.microsoft.com/kb/255275 KB Article 255275]): |
Version File Version Patches | Version File Version Patches | ||
Line 46: | Line 46: | ||
Access 97 8.0.3512 n/a | Access 97 8.0.3512 n/a | ||
Access 97 SR-1 8.0.4122 n/a | Access 97 SR-1 8.0.4122 n/a | ||
− | Access 97 SR-2 8.0.5903 SR-1 | + | Access 97 SR-2 8.0.5903 SR-1 |
+ | Access 2000 9.0.2720 | ||
+ | Access 2000 9.0.3821 SR-1 | ||
+ | Access 2000 9.0.4402 SR-1 | ||
+ | Access 2000 9.0.6926 SP-3 | ||
Access Version linked with MSJet35.dll ([http://support.microsoft.com/kb/248710 KB Article 248710]): | Access Version linked with MSJet35.dll ([http://support.microsoft.com/kb/248710 KB Article 248710]): | ||
Line 95: | Line 99: | ||
* [[Wikipedia:Microsoft_Jet_Database_Engine]] | * [[Wikipedia:Microsoft_Jet_Database_Engine]] | ||
+ | * [http://allenbrowne.com/ser-53.html Developer resource discussing DLL versions and sample code to retrieve Access version] |
Revision as of 03:32, 3 February 2013
Access released by Microsoft also known as Jet DB is a standalone database that forms part of the Microsoft Office Suite of productivity tools. It was first released in 1992.
Access databases are composed of multiple page types. The length of these pages depends on the version of the Jet Database employed by the specific version of Microsoft Access. The first page of Access 95/97 and Access 2000/2003 databases is always a Database Definition Page.
Contents[hide] |
Microsoft Access 95/97 - Jet 3 Database
Microsoft Access 95/97 utilizes the Jet3 database engine. The page size of the Jet3 database engine is 2048 bytes.
Microsoft Access 2000/2002 - Jet 4 Database
Microsoft Access 2000/2003 utilizes the Jet 4 database engine. The page size of the Jet4 database engine is 4096 bytes.
Internal structure of the format
The Jet DB version can be found in the file header by reading the 4 byte little-endian integer at offset 0x13. Jet3 databases have a value of 0. Jet 4 databases have a value of 1.
The version and build number of Access, used to create the file is located variable in the file structure. It will be located within a 'Page Index' page type, under one of the memo fields stored within that page type.
The block of data at offset 0x18 running for 126 bytes (Jet 3) and 128+ bytes (Jet 4) represents RC4 encrypted data. It is thought this uses the key: 0x6b39dac7.
Jet DB and Access Build Numbers
The following table shows that the version of the Jet Database format remained fairly consistent between versions of Access:
Client Application Jet Engine Used Recommended Jet DB Format ------------------------- --------------- ------------------------- Access 2.0 Jet 2.0 Jet 2.0 Access 95 Jet 3.0 Jet 3.0 Access 97 Jet 3.5 Jet 3.0 Access 2000 Jet 4.0 Jet 4.0 Access 2002 Jet 4.0 Jet 4.0
The controller used to read and write the format by Access versions did change. The version of Access and its build number can help us to understand the version of the DLL used to interact with the format. The version and build number is embedded in the MDB objects (as described as part of its internal structure above) so can be easily extracted. Build numbers and DLL versions are described below (KB Article 248710 and KB Article 255275):
Version File Version Patches -------------- ------------ ------- Access 95 7.0 Unknown Access 97 8.0.3512 n/a Access 97 SR-1 8.0.4122 n/a Access 97 SR-2 8.0.5903 SR-1 Access 2000 9.0.2720 Access 2000 9.0.3821 SR-1 Access 2000 9.0.4402 SR-1 Access 2000 9.0.6926 SP-3
Access Version linked with MSJet35.dll (KB Article 248710):
Version DLL Version ------- ----------- Access 97 3.50.3428.0 Access 97 SR-1 3.50.3907.5 Access 97 SR-2 and Jet35Upd.exe (3rd rel) 3.51.2026.0
The following table KB Article 178880 describes backward compatibility between Jet DB engines and MDB version:
---------------------------------------------- Jet Version 1.0 1.1 2.0 2.5 3.0 3.5 ---------------------------------------------- MDB Version ----------- 1.0 Y Y Y Y Y Y 1.1 N Y Y Y Y Y 2.0 N N Y Y Y Y 3.0 N N N N Y Y
Note: See the KB Article for information on all DLL updates.
Specifications
A formal specification from Microsoft has not been made available. The following links are attempts by third parties to reverse engineer and document the format:
Sample Files
References
- Wikipedia:Microsoft_Access
- Reverse engineered documentation used by mdbtools on GitHub
- Database definition and encryption key documentation