MDB Files in 64-bit Windows

Microsoft's transition to 64 bit computing has involved the inconvenient stranding of popular Microsoft standards that became ubiquitous during the era of 32-bit computing, most notoriously the effective abandonment of Microsoft's enduringly popular .mdb 32-bit database format.

 

Important: This topic applies to all formats managed using Microsofts "Jet" or "Access Database Engine" code.  In addition to Access .mdb that includes other formats often used by Microsoft products such as .db, .html. .xls and .wkx.

 

Viewer:  Manifold Viewer is Radian technology so everything in this topic applies not just to Manifold System and Radian Studio but also to the free Viewer product from Manifold.tech_ravi_sm.png

 

Tech Tip:  When running 64-bit Windows, to import from, export to or create a new data source from DB, HTML, MDB, XLS or WKx format files, launch Manifold in 32-bit mode.   We can then launch a second Manifold session running in 64-bit mode and copy and paste tables, drawings, and other components between the 32-bit and 64-bit Manifold sessions.  

 

Using the fundamentally 32-bit Microsoft infrastructure surrounding .mdb database files within 64-bit Windows requires extra care and taking odd detours, for example, requiring us to use 32-bit Manifold to connect to .mdb files even if we are running within 64-bit Windows.  Here is why:

 

To ensure maximum compatibility with Windows systems and Microsoft updates to Windows, Manifold products such as Manifold utilize Microsoft code when connecting to Microsoft file formats such as those used by Microsoft Office products.  In general that is a very good thing; however, using Microsoft code to connect to Microsoft file formats also means that when that Microsoft code encounters transition or integration issues our use of Manifold will do so as well.   This note looks at the specific case of how Microsoft's transition of Office from 32-bit to 64-bit has impacted the use of Microsoft code in Manifold to connect to typical Office file formats.

 

First, some background: Microsoft Office for many years has included the Microsoft Access database product, which originally used .mdb format files.   To promote data interchange with Access, Microsoft encouraged third party applications to also utilize .mdb format by utilizing Microsoft's own JET database engine code (provided free to third party developers) to connect to .mdb.  As a result .mdb files have become a ubiquitous standard for storing data in Windows systems, used by many thousands of applications in addition to Access, all of which can connect to .mdb files in a standard way using Microsoft's own JET database engine.

 

That success story continued without any glitches until 64-bit Windows was introduced and developers started creating 64-bit applications for 64-bit Windows.  

 

When Microsoft introduced 64-bit Windows, Microsoft for many years did not upgrade Office applications to 64-bit operation.  Instead, both Office applications and the JET database engine remained at 32-bits.  Microsoft took advantage of the ability of 64-bit Windows to run 32-bit applications to continue offering 32-bit Office applications, including Access and the JET database engine, for use within 64-bit Windows.  Only relatively recently have 64-bit versions of Office applications become available.  

 

However, even after 64-bit versions of Office became available Microsoft advised users to install 32-bit Office, even on 64-bit Windows systems.  Microsoft has stated:

 

"We recommend the 32-bit version of Office for most users, because it's more compatible with most other applications, especially third-party add-ins. This is why the 32-bit version of Office 2013 is installed by default, even on 64-bit Windows operating systems. On these systems, the 32-bit Office client is supported as a Windows-32-on-Windows-64 (WOW64) installation. WOW64 is the x86 emulator that enables 32-bit Windows-based applications to run seamlessly on 64-bit Windows systems. This lets users continue to use existing Microsoft ActiveX Controls and COM add-ins with 32-bit Office."

 

As a result, most Microsoft Office users within 64-bit Windows continue to operate 32-bit versions of Microsoft Office, including 32-bit versions of Access.

64-bit ACE and Access Database Engine

A complication for .mdb users that arose when Microsoft introduced 64-bit Office is that Microsoft did not introduce a 64-bit version of JET.   Instead, when Microsoft introduced a new, 64-bit Office Access Connectivity Engine (ACE) that developers could utilize to connect to new Office formats such as .xlsx, to the new ACE-supported Access format, .accdb, and also with some limitations to .mdb created by 32-bit Office editions and by other applications running JET.  

 

More recently, Microsoft has introduced a 64-bit Access Database Engine, which for most developers and users has replaced the 64-bit Office Access Connectivity Engine.  Manifold recommends using Access Database Engine.  If installed, Manifold will use the latest version of Access Database Engine.

 

In theory, it sounds like an application such as Manifold could simply use JET for 32-bit editions and Access Database Engine for 64-bit editions and thus continue to be able to connect to .mdb no matter whether we run 64-bit or 32-bit Manifold.  

Microsoft Compatibility Issues with 32-bit Office

Real life is more complicated than that because both Microsoft's 64-bit ACE and Access Database Engine have compatibility issues with a 32-bit Microsoft Office installation. ( Ouch! )  To utilize 64-bit ACE or 64-bit Access Database Engine within a 64-bit third party application users who are currently running 32-bit Office usually must upgrade to a new, 64-bit Office installation.  Many users are unwilling to undertake the increased cost and inconvenience of such a forced upgrade, so to avoid forcing users into such an upgrade many third party applications which connect to .mdb files will not automatically install ACE or Access Database Engine in 64-bit Windows.

 

It is inconvenient to not be able to utilize Access Database Engine for 64-bit connections to .mdb files except at the cost of replacing a perfectly good 32-bit Office installation, if that is what we are using in our 64-bit Windows system; however, Manifold offers an easy workaround to avoid a forced Office upgrade:  Because a 64-bit Manifold license will automatically install both 64-bit and 32-bit versions of Manifold we can use 32-bit Manifold to connect to .mdb files in 64-bit Windows without needing Access Database Engine.  We simply launch 32-bit Manifold which will then utilize the internal copy of JET that 32-bit Manifold embeds to connect to the .mdb file.   If we launch 32-bit Manifold that always works to connect to .mdb files no matter what our Windows installation (32-bit or 64-bit) or our Microsoft Office installation (32-bit or 64-bit).

Use 32-bit Manifold / Radian / Viewer

Although normally in a 64-bit system we would prefer to utilize 64-bit Manifold, to use 32-bit Manifold to connect to .mdb is generally not a significant limitation.  Using 32-bit Manifold to read .mdb files is usually acceptable because data sets stored in .mdb files tend to be relatively small data sets that can be easily handled by 32-bit Manifold.   By design .mdb files are limited to only 2 GB so they are not normally used for larger data sets.   If we do not need to leave the data in the .mdb file we can use 32-bit Manifold just once to import the data from the .mdb and then save it as Manifold .map file that we can later open with 64-bit Manifold.

 

If we have Access Database Engine installed in our 64-bit Windows system, then 64-bit Manifold can use Access Database Engine to connect to .mdb files.  Due to Access Database Engine integration issues with other Microsoft software, 64-bit Manifold does not incorporate or install Microsoft Access Database Engine, but if a user has Access Database Engine installed on a computer 64-bit Manifold will use it.  Anyone can download Access Database Engine for free from Microsoft's website and install it if they feel comfortable managing the Microsoft integration issues involved.  If Access Database Engine is installed on a computer when we launch 64-bit Manifold, then Manifold will detect the Access Database Engine installation and Manifold will automatically use Access Database Engine.   In that case we could launch 64-bit Manifold and connect to .mdb files using 64-bit Manifold.

 

It is important to emphasize that 64-bit Manifold does not automatically install Access Database Engine: given the integration issues between Access Database Engine and other Microsoft products that Microsoft itself warns against, it would unwise to expose all users to such problems whether they want Access Database Engine on their systems or not.   

 

Manifold advises users who wish to connect to .mdb files in 64-bit Windows to simply utilize 32-bit Manifold: that always works with no need to work through any integration issues between Microsoft Access Database Engine and other Microsoft products.

 

Notes

ACCDB - To read or write .accdb format we must have installed the Access Database Engine.

 

Access connecting to Manifold - When linking Manifold tables into Access using the Manifold ODBC driver, please review the notes on Access in the DBMS Data Sources - Notes topic.

See Also

Example: Create and Use New Data Source using an MDB Database