Firstly, the file format has not changed since A2002, and it can natively
work with A2000.
Sandbox mode will not get around the problem. It just prevents certain
things in certain contexts (detailed in the article you read), but the user
still gets some of the security dialogs if the mdb has any code, any macro,
or any action query.
While I do appreciate Microsoft's push towards trustworthy computing in
general, forcing this in Access users is as appropriate as forcing seatbeats
on bicycle riders in my view.
--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Reply to group, rather than allenbrowne at mvps dot org.
Bob Whitehead said:
Allen,
I just read your reply about the new security model in Access 2003. I
just upgraded and experienced those never ending dialogs when I tried to
open an existing application. It has caused all sorts of problems in my
mind. In Access XP, you could choose to work in 2000 or XP mode. I find no
such setting in 2003. Almost all of my customers are on 2000. Because of
that option in XP, I was able to still do work for them with very little
problems. Do you know what's going to happen when I send them an app for
their 2000 that I worked on in Access 2003?
On this security model, is there any way to find out what these "insecure"
expressions are in an application? All it does is tell me the app has some,
but doesn't tell me what they are, where they are, or what to do to make
them "secure". I printed out a 5 page help screen titled, "About Microsoft
Jet Expression Service Sandbox Mode." It lists "Blocked Functions located
in the Visual Basic for Applications (VBA) Object Library" and "Blocked
Functions and Properties in the Microsoft Access Object Library." It gives
an example of how to use a blocked function in code, which I suppose means
would allow it to be classified as safe if you follow this guideline, but it
does not explicitly say that. Their suggestion is to wrap a blocked
expression in a user-defined public function such as:
Public Function MyCurDir() as String
MyCurDir = CurDir()
End Function
So, does this mean that I need to check my existing applications for all
of these listed functions and write wrapper functions around them, and then
my app will be "Safe"? If the answer to that is "Yes," then obviously the
next question is who will be the first person to write a utility to do that
and retire in Tahiti? LOL!!!