How to convert Access 32 Bit Database to Access 64 Bit Database

Copper Contributor
How to convert 32 Database created with Access 2007 32 bit to Access 2016 64 bit? Manoj Kumar
26 Replies
hi,

First, let me make clear what I'm saying.  Usually an ACCDE is created to protect the design of forms, reports, and VBA codein a database application.  The ACCDE may or may not contain the actual data tables -- often, it contains only links to the tables in another database (generally referred to as the "back-end", whereas the ACCDE is the "front-end").

If she has only 64-bit Access and the ACCDE was built with 32-bit Access, then she won't be able to open and run the ACCDE as an *application* -- she won't be able to run the forms and reports, and won't be able to execute any code it contains. 

All I'm talking about is a way to get to the tables (if any) and queries in the ACCDE.

To do that, she would open her copy of Access without selecting an existing database.  She would then tell it to create a new, blank database (not a web database).  She'd have to provide a name and folder path for that database, and then click the "Create" button.  Access will create the database and open it, and will probably open an intial sample table, "Table1".  She should just close that table.

She should then go to the "External Data" tab on the ribbon, and from the "Import & Link" tab group she should click "Access".  She'll tehn be shown a dialog prompting her to specify the source of the data.  She should enter or browse to & select the ACCDE that she's interested in.  She should also choose the option, "Link to the data source by creating a linked table".  The she should click the OK button.

She'll then be shown a Link Tables dialog where she can select the tables to be linked.  It will only show the tables that actually reside in the database she's linking to -- if the ACCDE has linked tables to a back-end somewhere, those tables won't appear.  She should then select the tables she wants to link, click the OK button, and Access will take it from there.

If it turns out that the ACCDE has only linked its tables, then she can import the table links instead of linking tables. She'd follow basically the the same process but instead of choosing the "Link ..." option, she'll choose "Import ..." instead. That will copy the table *links* from the ACCDE into her working database.

If the ACCDE contains stored queries that she wants to use, she can import them. To do that, she would use a similar procedure, except that she woluld choose the "Import" option, go to the Queries tab of the Import dialog, and select the queries she wants.

Thanks mustafiz salam sajib for the excellent idea. I guess, this process can convert my Access 2007 32 Bit MS Access 2016 files into 64 bit files. I just tried one sample. I will work with actual files and give you feedback.
Just wanted to note that there isn't much advantage to using the 64bit version of Access, and can actually limit things, as you can't install any 32bit Office apps along side it. There is a good discussion of 32bit vs 64bit here. https://support.office.com/en-us/article/Choose-between-the-64-bit-or-32-bit-version-of-Office-2dee7...
It notes that only Project and Excell would really benefit from 64bit, allowing larger files. Access 64bit doesn't allow any bigger file as far as I can tell.
Certainly, if you are using 64bit Office for some other good reason, 64bit Access is a given.
I think there is no 32 bit ODBC driver for Access 2016. If you have a 64 bit web server environment, then it is a no go.

How to convert 32 Database created with 32 bit to Access 64 bit? 

When I did it for experimentation, I just copied my 32bit .accdb onto a drive accessible from the system that had 64 bit Access on it and opened it with 64 bit Access. I had no issues. I imagine any library issues would have shown themselves. Can't say for certain what the .accdb became, or if it changed.

 

Another option if you want to be somewhat certain you are all 64 is to open a blank DB in the 64 bit version of Access and import everything, tables, queries, etc from the 32 bit .accdb. Tried that too and worked fine.

 

 

Hi, I have an issue with a db built in Access 32b.

When I open it with Access 64b, I get the following message. Is there any tools that can help at converting the code ?

 

erreur_64b.PNG

Not really, no.

 

Actually, we should start by asking if you really MUST do this at all. Although it is possible to install the 64 bit version of MS Office, the most common advice is to use the 32 bit versions of MS Office. For Access, there is little or no benefit in converting to 64 bit. On the other hand, if you must have 64 bit Office in order to crunch enormous datasets in Excel, it's worth the effort to convert your Access APIs. Otherwise, not so much.

 

The solution is to manually convert all APIs in your VBA to use their 64bit equivalents. Here's a good place to start. Converting to 64 bit API

There may be other language versions of this page, so a search might turn up something useful as well.

.accdb files are affected by 32/64 bit creation. However, .accde files are as they are essentially a 'compiled' verison of them and these do get locked to either 32 or 64 bit.

@mustafiz salam sajib Capture Error.PNG

Thanks for information but I still have the same problem 

@Mohammed_S_Safi 

 

And which problem would that be? Are you trying to convert from a 32 bit to a 64 bit environment? If so, there are differences in the way you need to handle API calls. 32 bit ActiveX controls won't work in a 64 bit environment.

Or is the issue related to creating an accde from one or the other?


Thanks for clarifying.

Hello George Hepworth 

Thanks for replaying the problem is like this:

there is a file created by the author in access type of extension is .accde they created in 32 bit version,

when I try to open it in 64 bit version not work since my laptop is 64 bit

I follow the instruction that written before but it still not work

@Mohammed_S_Safi Thanks for clarifying.

 

Accdes must be created using the same version and bitness of Access as the one you will use to run the accde. So, you must start with the original accdb for this MS Access database application. Make sure it runs properly as an accdb on the laptop where you will use it--the one with 64 bit MS Office. Then, when it is all ready, convert that accdb to the accde which will then run on your laptop.

 

 

The first question that must be asked is whether you have Access on your laptop. If you are trying to run the accde with the Access Runtime, it will only work with the same bitness. As was mentioned a 32bit accdb will run under 64bit Access, though there may be some adjustments that need to be made depending on what is called in VBA.

There is no reason you need to install 64bit Access on a 64bit laptop. For the longest time MS even recommended you did not install 64bit Office on a 64bit machine unless you really had a specific reason (huge spreadsheet, project files). Is it reasonable to remove the 64bit Access (or Office) and install the 32bit in your case.

 

@Sven Johannsen Thanks for catching that with runtime. 

 

Actually, Microsoft is softening their stance on preference for 32 bit Office. By default now, when you install the latest versions (O365 and, I think also O2019) the 64 bit version is installed and it's a matter of sleuthing to even find the 32 bit option.

 

 

@George HepworthYea, that's why I said it the way I did. I still don't really see the benefit of 64bit for the average user. But then, the average user probably isn't using many add-ins that are only available with 32bit, so won't be harmed by installing 64bit either. Really only becomes an issue if you are creating DBs for others and are wanting to keep them from messing them up (accde ;) ). With Access coming with O365 instead of being $300 on its own per user, not as much incentive to use the runtime option. 

Still give me this message:-
"This database was created with 32-bit version of Microsoft Access. Please open it with the 32-bit version of Microsoft Access."

@ManojK365 I'm not sure if you had a compile issue with VBA or not, but I used Here to solve my syntax issue.  It turns out that the difference between my 32 bit and 64 bit database was PtrSafe after my Declare statements.

 

#If VBA7 Then
Declare PtrSafe Sub...
#Else
Declare Sub...
#EndIf

 

I hope this helps out.

@Sven Johannsen 

It allows larger memory use, 32bit applications are limited to 3.5GB (4GB) memory spaces in a single instance of Access. As office apps these days run as a single instance and you have say multiple large Access DB's open at the same time then that memory space is consumed rather quickly for that single process, in some cases you can work around this by spawning programs in their own memory space which will increase performance but this breaks cross linking compatibility between objects within the application as they are ran as separate process in their own memory block. The 64bit version of office allows much larger memory allocation. I know this post is old but thought I would mention it.