[AccessD] Changing VBA code for 64 bit compatibility

Jim Dettman jimdettman at verizon.net
Sat Mar 9 06:56:47 CST 2024


There is also this list:

https://jkp-ads.com/articles/apideclarations.asp

 Which has many of the calls.

There is also a free API scanner and API Viewer here:

https://accessusergroups.org/europe/

Written by Peter Cole.   His Youtube presentation on these is:

https://www.youtube.com/watch?v=NE-ixCSkEgI

Jim.



-----Original Message-----
From: AccessD On Behalf Of Stuart McLachlan
Sent: Friday, March 8, 2024 8:56 PM
To: Access Developers discussion and problem solving
<accessd at databaseadvisors.com>
Subject: Re: [AccessD] Changing VBA code for 64 bit compatibility

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/wi
n32api_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
> 


-- 
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