"PW" wrote in message news:l3rnq7p1dmnlo9mic...@4ax.com...
>From Microsoft's website: "Note: The 64-bit version of Office 2010
>is not compatible with any other 32-bit version of Office
>programs....". and "The MDE and ACCDE files, a common way for Access
>application developers to distribute solutions and protect their
>intellectually property, do not work in the 64-bit version of
>Office..."
The above is not correct. If you compile a mde or accDE with Access 64, then
you need access 64 runtime.
If you use a mdb or accDB, the source code is available and thus re-compile
occurs on the fly.
So you can most certainly use a compiled accDE with Access 2010 (x32 or
x64), the only restriction for compiled code is that you use the correct
version of Access x32 or x64.
As noted, this problem does not exist with a mdb or accDB since source code
is available.
I mean, if you compile code to x32, then you need x32 libraries to support
that code.
I mean if you compile code to x64, then you need x64 libraries to support
that code.
how the above works is quite much how all of the computer industry has
worked since the first PC came out.
It would have been really nice if we could install two versions of Excel or
Word from the same version of office, but the problem is those shared
libraries (so spell checker, VBA, VBA editor, JET, fluent UI (ribbon) etc
are all shared among all of the office products. So only one copy of these
"parts" are installed and then shared.
So, only one bit size version of a given version of office can be installed.
However, as noted, you can most certainly use a accDE or mde with x64
runtime, but you have to then compile that accDE with the correct version of
office.
So the above is correct that a compiled x32 accDE cannot be used with Access
x64, but if you create a x64 compiled accDE with Access x64 then it works
fine. And of course you cannot consume the x64 accDE with Access 32. So the
compatibility they are speaking about is WHEN you use different bit size,
not that Access x64 cannot use and create accDE files since it can do this
without problems.
Also, if you do use the x64 version of Access then all and any api's calls
to windows have to be modified since you calling the x64 versions of windows
api's, and not the x32 version or what is called WOW (WINDOWS on windows -
x32 compatibility layer). In fact, this means your memory handles in Access
actually require a 64 bit wide memory variable. So values returned back from
windows can be x64 in length (you can stuff those values into the new var
type called longlong). We also for the first time in Access now have a
pointer data type that is 32 bits in length for the x32 version and 64 bits
in length for the x64 version. If we had this "pointer" data type in the
past then then our windows API code calls could likely be used without
modification for api calls. However we had to use a long variable data type
for API calls to windows and with the x64 version that pointer has to be 64
bits in length.
Note that in Access x64, the long variable data type for compatibility
reasons remains 32 bits, but you can use longlong data type in x64 if you
want to use a x64 bit size variable that can hold really honking big numbers
in that variable.
--
Albert D. Kallal (Access MVP)
Edmonton, Alberta Canada
PleaseNoS...@msn.com