We help IT Professionals succeed at work.

Access 2013 - is it the 32 or 64 bit version?

AndyAinscow
AndyAinscow asked
on
I'm having an odd problem.
I have a number of databases developed with access 2013 and saved in that format.
On my development PC all of these run perfectly well.
In the real location there is one PC with a full copy of access and a number of other new PC's with the runtime access (downloaded from Microsoft) installed.
Most of these databases run in the real location, one however is giving problems.  (As usual, the most complex and most often used  = Murphy's law in operation).  It seems to run reliably on the PC with the full version of access but on the other PC's it sometimes runs for a short while and then fails with an error message such as 'Unknown function Date...' or 'Unknown Function Left...'

The most obvious difference is the runtime version of access in use and I have thought maybe one is 32 bit and the other 64 bit.

So how can I determine which type, 32 or 64, bit version of Access is in operation?
Comment
Watch Question

JohnBusiness Consultant (Owner)
Most Valuable Expert 2012
Expert of the Year 2018

Commented:
Go to any Office 2013 application, File, Account, About "application" and click. It will tell you conclusively in the Window that pops up if it is 32-bit or 64-bit. Unless you need 64-bit, Office 32-bit works best overall.
AndyAinscowFreelance programmer / Consultant

Author

Commented:
That works for the full version of access BUT when running that in runtime mode I get the following:
File menuNO account option
I'm going to install a runtime access here on another PC but that will take a bit of time.  According to Microsoft the runtime flag on the full access version should make it behave as the runtime version so I am assuming the runtime will behave the same way.
JohnBusiness Consultant (Owner)
Most Valuable Expert 2012
Expert of the Year 2018

Commented:
I thought they should work the same. Look for a Help About or some similar menu in the runtime. I have the full version and not the runtime.
AndyAinscowFreelance programmer / Consultant

Author

Commented:
You can simulate a runtime by supplying the /runtime flag when you launch access eg. via a destop shortcut to an existing database.
The '?' goes directly to the help, I've not found an about screen in the runtime mode.  (As I said, it may well be different in the real runtime version - I've not had the opportunity to test that on another PC yet).
President / Owner
Fellow 2019
Most Valuable Expert 2017
Commented:
<<So how can I determine which type, 32 or 64, bit version of Access is in operation? >>

 You can use VBA compiler constants.   If Win64 = True, then your running in 64 bit.

Jim.
Jim Dettman (EE MVE)President / Owner
Fellow 2019
Most Valuable Expert 2017

Commented:
One additional note; when distributing as a accde (no source code), you must supply the user with a DB that is either specifically 32 or 64 bit to match the version of Access or Runtime installed.

While you can write a DB in such a way that it will run in 32 or 64 bit Office, you can only do that with a DB that has the source code included.  The reason is that without source code, a DB cannot be recompiled on the fly when it starts up.

Jim.
Jim Dettman (EE MVE)President / Owner
Fellow 2019
Most Valuable Expert 2017

Commented:
and if your not already aware of it, you should read:

Compatibility Between the 32-bit and 64-bit Versions of Office 2010
https://msdn.microsoft.com/en-us/library/ee691831.aspx

Check out the sections:

Application Programming Interface Compatibility

and

Using Conditional Compilation Attributes

as you may find some things in there helpful.

 But you'll have a problem no matter what if your distributing as a accde.   personally, I would tell who ever to avoid 64 bit Office at all costs.
AndyAinscowFreelance programmer / Consultant

Author

Commented:
Thanks for that info.
For reasons I am not going into an accde is not suitable - it is an accdb.  I'll get a simple test DB put together to test the Win64 flag.

>>personally, I would tell who ever to avoid 64 bit Office at all costs.
My full version is the 32 bit version and I have read that (well certainly similar) from others.
Distinguished Expert 2017

Commented:
You CANNOT mix bit versions of Office components.  So, if Word is 32-bit then Access MUST be 32-bit.  That is why you can check any office component.

The error message seems to indicate a missing library.  Unfortunately that is almost impossible to resolve without a full version of access installed.  You would most likely see this if you were developing in a newer version of Office than the clients were using and your code used early binding.  Personally, I use early binding because it is more efficient and it gives me intellisense and MS ought to FIX THIS PROBLEM.  If Access can promote libraries (use a newer version), it is certainly capable of demoting them (using an older version).  If something doesn't work, it is on me.  If you can't develop in the same version as the users, then your only viable alternative is to use late binding.  With late binding you can use any constants and you don't get intellisense.  Instead of compile time errors, you will get runt time errors so test veeeerrry carefully.
AndyAinscowFreelance programmer / Consultant

Author

Commented:
I've done a small DB to test the Win64 variable, waiting for a response from my client.  I've also asked if they could arrange a VPN connection.

>>You CANNOT mix bit versions of Office components
Which is precisely why I am determining just which version of office (access full version) and access runtime version are installed.  I don't want to spend ages looking at obscure things and eventually find it was something simple like that.
AndyAinscowFreelance programmer / Consultant

Author

Commented:
Thanks.
Both runtime and full versions came back as 32 bit so that possibility can now be crossed off.