Access Compatibility issues?

jon.mark.wright

Registered User.
Local time
Today, 21:19
Joined
Oct 22, 2013
Messages
15
Hello all,

In the company I work for we use an AutoCAD package that has a pluggin called CADWorx that simply transports information to an access database. As we are an international company and have partners in Germany we are currently going through an integration process to ensure everybody is running on the same versions of software.

Our German Partners use a different piece of software but I am trying to encourage them to use ours. The access database side of things has many queries and macro's that you run to autofill various columns and so on.


A question raised by our colleagues is compatibility with new versions of Access. I currently run MS ACCESS 2007 and they are looking at going to 2013 and what they have suggested that with 64bit computer systems and the latest version of access that all queries designed in Access 2007 and with 32 bit machines will not work.

I struggle to believe this is true as this would be quite absurd for MS not to support earlier versions. Can anyone please confirm if there are any compatibility issues.

many thanks jon
 
Many thanks PR2.
I am so confused now. I am far from an MS ACCESS Expert. Good old MS does it again. Im glad I didn't instantly cast doubt over what the guy was telling me in the meeting in Germany the other day. They suggested they struggled that much with it that they completely changed software system.

So after reading the articles would I be right in saying that this can be overcome by a script file/code added to the MDB design in question?
 
Well that is the start.. All you need is to go through the Code, find all library declarations in the Code..

Then just add the word PtrSafe to each of the declaration.. Example, if you have the kernel32 library that is to be loaded during execution.. In 32-bit environment, you will simply have..
Code:
Private Declare PtrSafe Function LoadLibrary Lib "kernel32" _
        Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
The same in a 64-bit environment you should have..
Code:
Private Declare [COLOR=Blue][B]PtrSafe[/B] [/COLOR]Function LoadLibrary Lib "kernel32" _
        Alias "LoadLibraryA" (ByVal lpLibFileName As String) As [COLOR=Blue][B]LongLong[/B][/COLOR]
The changes as you can see are highlighted.. In 64 bit they added a New Data Type LongLong.. Althought not required to be declared as LongLong, it would be best to just stick with it..

So if you have to CODE for users who use both 32 and 64 bit (like me :rolleyes:) you might as well use If Else directives to help you..
Code:
[B][COLOR=Red]#If Win64 Then[/COLOR][/B]
    Private Declare PtrSafe Function LoadLibrary Lib "kernel32" _
        Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
[COLOR=Red][B]#Else[/B][/COLOR]
    Private Declare [COLOR=Blue][B]PtrSafe[/B] [/COLOR]Function LoadLibrary Lib "kernel32" _
        Alias "LoadLibraryA" (ByVal lpLibFileName As String) As [COLOR=Blue][B]LongLong[/B][/COLOR]
[COLOR=Red][B]#End If[/B][/COLOR]
More information : http://msdn.microsoft.com/en-us/library/ee691831%28v=office.14%29.aspx
 
I think I would also benefit from setting up with the if else directive as i will be the person responsible for the initial setup.

I have just checked through parts of the design and queries and cannot find reference to kernel 32 libraries, can you please indicate where I will find this.
many thanks for your support its greatly appreciated.
 
I just gave an example with one of the Libraries I use in my application, that does not mean you will be using the same..

Use Ctrl+F and type in 'Declare Function', Search for the 'Current Project'.. If you cannot find any try 'Declare Sub'..

That should show all Library declarations that you use in your module.. Then replace all Declare Function(/Sub) to Declare PtrSafe Function(/Sub)
 
Does it make sense that when I have searched declare sub or declare function that I have no occurrences?.
Sorry I am basic skilled on MDB so my apologies for my lack of understanding.
I will keep on with it and investigate further.
many thanks for the advice
 
Okay if you could delete all tables and Queries, and just post the empty DB, with the VBA Code intact and post it on here (after performing a Compact & Repair) I might have a look at it and see what is the error with the 64 bit version..
 
Hi PR2,

Sorry I haven't been in touch before now. I had taken a long weekend. I hae ripped out all the tables and queries and attached the DB in a zip folder.
If you do get the chance to test this in 64 bit. that would be great.. can you also advise what Access version you are running too.

many thanks jon
 

Attachments

Okay the file opens normally under a 64 bit environment.. Although there were some missing End statements in your code when I tried to compile it.. So I have made some changes to the file.. It should be fine..
 

Attachments

Hi Paul.
I have re-checked the vb file in comparison to my main DB VB file and it appear much shorter. is it possible you could check the main DB for compatibility as im not sure if when i deleted the queries and tables that i deleted most of the script.
 

Attachments

The same problem, Missing End If, End Sub and forgot to comment a line, nothing to do with the 64 bit environment..
 

Attachments

The same problem, Missing End If, End Sub and forgot to comment a line, nothing to do with the 64 bit environment..

Hi Paul.
Thank you.
I have never tested the database in any other environment other than 32bit.
so am i right in understanding it opens fine in 64bit then? do i need to make the corrections, i.e. End If, End Subs for them to work in 64bit?
I think there are some statements that are redundant and there for need tidying up. so will have to look into it.
Can i now confirm to my German Colleagues that my database will work in a 64bit environment?
is there an explanation i can give them to why my database file will work in a 64bit/32 bit environment whereas the one they have used in the past aren't
is not compatible between 32bit and 64bit
 
Hi Paul.
Thank you.
I have never tested the database in any other environment other than 32bit.
so am i right in understanding it opens fine in 64bit then? do i need to make the corrections, i.e. End If, End Subs for them to work in 64bit?
I think there are some statements that are redundant and there for need tidying up. so will have to look into it.
Yes, as far as I could see, it works fine with the 32/64 bit. Just make corrections and tidy up the code, you should be good to go..
is there an explanation i can give them to why my database file will work in a 64bit/32 bit environment whereas the one they have used in the past aren't
is not compatible between 32bit and 64bit
This still remains a mystery to me.. However, the only reason I can think of other than this incompatible versions is the Language barrier.. Probably they have installed German version, and this might conflict with Queries that takes criteria from Form Controls? Could this possibly be a problem?
 
Sorry Paul, in my haste of typing the email i probably didnt explain myself correctly. They have not tested my DB out its from experience they have had with a different cad program that used a database. so theroefer i assume that database they used had script like declare sub, declare function, that were not compatible.
They have not used my database or the associated CAD program they just raised the concern that maybe this will be an issue if they were to adopt it.

therefore,
I can now state that the my DB will work in 64bit.
Can you possibly in a not to technical way explain in brief terms why they may have had an issue and why the DB I use is not an issue?
If you can think of some words to put to that it would be great.
 
Yes your file should and would work in any environment, as I went through your code, I found no dynamic libraries used anywhere..

I am not sure how to word it, but something along the lines of..

Regarding the concerns raised at your end, I am glad to inform that this application built under MS Access has been tested to work in both 32 and 64 bit environment.
 
Many thanks Paul.
I really appreciate you taken the time to look at my issue and to confirm that my DB is stable in both 32bit and 64 bit environments.
Cheers jon.
 

Users who are viewing this thread

Back
Top Bottom