[AccessD] 32->64 bit conversion

Bill Benson bensonforums at gmail.com
Sun Oct 31 22:22:06 CDT 2021


I am going to have to check that out because we distributed accde versions
to bank clients running both 2013 32 bit and 365 64 bit with conditional
compilation constants amidst api calls and have not had a single customer
service complaint in over a year.

On Sun, Oct 31, 2021 at 4:38 PM Paul Wolstenholme <
Paul.W at industrialcontrol.co.nz> wrote:

> Jim,
>
> Thanks for the clear explanation.
>
> You have just explained that there is one caveat, but only for .accde
> files:  Conditional compilation code distributed in a .accde will only work
> if the issuing computer and the user computer evaluate the compilation
> conditions as being the same.
> And I've learnt that I should compile my application before issuing it
> rather than compacting it (meaning I send a slightly bigger file).
>
> So if Arthur doesn't use .accde files he can use conditional
> compilation freely.
>
> Paul Wolstenholme
>
> On Sat, 30 Oct 2021 at 00:23, Jim Dettman via AccessD <
> accessd at databaseadvisors.com> wrote:
>
> > Paul,
> >
> > << Should conditional compilation only be used in Access with some
> > prescribed
> > caveats?>>
> >
> >   There really are none, and you should not leave a project in an
> > un-compiled state as it will run slower.
> >
> >    VBA has two major steps when working with code:
> >
> >     1. When you enter a line of source, the text is tokenized and checked
> > for basic syntax errors.
> >     2. VBA "compiles" the tokenized code, which basically means it goes
> > through a whole bunch of checks to figure out how all that code relates
> and
> > if it's valid.   Last I knew, there were more than sixteen levels that
> the
> > compiler would d code through before it was considered "compiled".    I'm
> > putting compiled in quotes because un-like a lot of other languages where
> > you end up with an .EXE, VBA doesn't do the same thing (it's not linked
> > code).   Even with compiled code, it's still figuring out how to execute
> it
> > at run time.    When you "compile" your VBA project, it's just cutting
> out
> > some of those checks.
> >
> >     You can have a VBA project with just source and no compiled code.
> >  That's what /decompile leaves you with.   Any compiled code is marked as
> > invalid and it will be removed when a compact and repair is done.
> >
> > <<<< I understand Access likes to pre-compile its source and save it in
> the
> > database file (the front end in a FE-BE system).>>
> >
> >  VBA doesn't do that on its own.   You must explicitly tell it to do
> > that.   But VBA only executes compiled code, so if you don't do it before
> > hand, it will compile at runtime.   It just won't save it.
> >
> >  << If the source is written for conditional compilation (conditional
> > according
> > to how Access was installed on the computer) how does Access know when
> > recompilation is required?>>
> >
> >    I don't know for sure, but I would think it simply checks the values
> of
> > any compiler constants against what the compiled code was compiled
> > against.   If it spots a difference, then it compiles everything again,
> > just as it would if you changed a line of code.
> >
> >    With 32 vs 64 bit, that's what happens.   If you compile 32 bit,
> > distribute as an .accdb, then run in 64 bit, VBA can (and does) compile
> on
> > the fly.   But if you distribute as an .accde (which has no source), then
> > it cannot and won't run.
> >
> > HTH,
> > Jim.
> >
> >
> --
> 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