Access 2003 has enhanced the default security in two areas - Unsafe expressions, and Macro security.

Unsafe expressions are VB functions that touch the file system, such as MkDir, Environ, Shell and the like. Unfortunately, many Access programmers have used these functions since the early days - doing so avoids having to use API declarations.

Macro security is shared with other Office applications. Unless you have a signed project, VB generally will not run unless this is set to "Low (not recommended)".

Once you have answered Yes to the question, do you want to block unsafe expressions, you'll get an unknown function error if these functions are called. Online help does not tell you this. One very common use of this type of function is for a logging table that can automatically default the user and PC names by invoking

=Environ("USERNAME") and

...which used to be an API call. If you've been around for a while, you'll recall that Access 95 required converting 16-bit calls to 32-bit; sometimes messy stuff.

If you have already blocked unsafe expressions, you can edit the registry at
and set the DWORD to a value between 0 (wide open) and 3 (most restrictive).

Or -- in Access you can go into Tools ~ Macro ~ Security and change the macro security -- you'll be prompted to allow/block unsafe expressions. This would be a better, safer method to change these settings.