[AccessD] Changing VBA code for 64 bit compatibility

Stuart McLachlan stuart at lexacorp.com.pg
Fri Mar 8 19:56:20 CST 2024


Assuming there are all WIn32 API decalrations, that's correct.  And you need to look at any 
API  Types as well as function prototypes :(

If doing it yourself by eye, you need to change LONGs to LONGPTRs only where they are 
actual handles/ memory pointers, any others need to remain as LONGs  and the only way to 
tell that is to examine each function and work out what each parameter actually is.

However, you can find a lot of the corrected  versions in the MS Document:
Wini32API_Ptrsafe.txt..  You can search that document to find your functions/type 
declarations  and copy/paste the updated versions

(But it's not a complete list!)


See 
https://learn.microsoft.com/en-us/office/troubleshoot/office-suite-issues/win32api_ptrsafe-wit
h-64-bit-support

If you are using declarations to third party DLLs, it's a different issue.  You can't call 32bit 
DLLs from 64bit Access. 


On 8 Mar 2024 at 23:33, Steve Schapel wrote:

> Hi all.
> 
> Sorry, a bit green on this topic.  But I want to change the code in an
> application that contains a very large number of Declare statements,
> so that it will be compatible with 64 bit Access.
> 
> I think I know what has to be changed.  But so far it looks like a
> long tedious task.
> 
> Has anyone worked out a way to streamline this process.  I know I
> could flick through and replace e.g. "Declare Function" with "Declare
> PtrSafe Function".  But as far as I can see, I would still need to
> manually check each instance for "As Long", and where applicable edit
> to "As LongPtr".  Is that right?
> 
> Many thanks.
> 
> Regards
> Steve
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 




More information about the AccessD mailing list