本文提供有关沙盒模式允许和阻止的功能和属性的参考信息 Access 。 请注意, Access 允许多个较新的函数在沙盒模式下运行,包括MonthName和StrReverse,并且它现在会阻止其他几个函数,包括Assistance、ExportNavigationPane 和LoadCustomUI。 在继续操作时,请记住,必须信任 (在数据库中启用) 或将数据库放在受信任的位置,以便本文中的信息能够使用。
本文内容
将沙盒模式设置为运行不安全的表达式
将表达式添加到数据库时,Access 在称为沙盒模式的操作环境中运行该表达式。 默认情况下,Access 启用沙盒模式,而沙盒模式始终禁用不安全的表达式,即使在您信任数据库之后。
如果您信任数据库,并且想要运行沙盒模式禁用的表达式,则可以通过更改禁用沙盒模式的注册表项来运行该表达式。 请记住,必须先信任数据库,然后按照本部分中的步骤操作。
下图显示了决定是否运行不安全表达式时遵循的过程。
注意 注册表编辑不当可能会严重损坏操作系统,导致您必须重新安装它。 Microsoft 无法保证可解决因注册表编辑不当而引起的问题。 编辑注册表之前,请备份任何有价值的数据。 有关如何使用和保护计算机注册表的最新信息,请参阅 Microsoft Windows 帮助。
如果不熟悉注册表或不熟悉自己更改注册表项,请联系正在或考虑将数据库从早期版本的 Access 转换为 Access 文件格式。 此外,您还必须拥有计算机上的管理员权限才能更改注册表值。
更改注册表项
重要: 按照下列步骤进行操作可以允许计算机上的所有用户在所有 Access 实例中运行不安全的表达式。
执行下列操作之一:
-
在 Microsoft Windows 7 或 Microsoft Windows 10 中
-
在任务栏上,单击"开始",然后单击"运行"。
-
在“打开”框中,键入 regedit,然后按 Enter。
即会启动注册表编辑器。
-
展开 HKEY_LOCAL_MACHINE 文件夹,导航到以下注册表项:
\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engine
注意: 请注意,14.0 表示 Access 2010,15.0 表示 Access 2013,16.0 表示 Access 2016 及更高版本。
-
在注册表编辑器的右窗格中,在"名称"下双击Sandboxmode。
此时将出现“编辑 DWORD 值”对话框。
-
在“数值数据”字段中,将值从“3”更改为“2”,然后单击“确定”。
-
关闭注册表编辑器。
-
-
在 Windows Vista
-
单击"开始"按钮,指向"所有程序",单击"附件",然后单击"运行"。
-
在“打开”框中,键入 regedit,然后按 Enter。
即会启动注册表编辑器。
-
展开 HKEY_LOCAL_MACHINE 文件夹,导航到以下注册表项:
\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engine
注意: 请注意,4.0 表示 Access 2010,15.0 表示 Access 2013,16.0 表示 Access 2016 及更高版本。
-
在注册表编辑器的右窗格中,在"名称"下双击Sandboxmode。
此时将出现“编辑 DWORD 值”对话框。
-
在“数值数据”字段中,将值从“3”更改为“2”,然后单击“确定”。
-
关闭注册表编辑器。
-
重要提示 请记住,如果不先信任数据库,那么,不管您是否更改此注册表设置,Access 都将禁用任何不安全的表达式。
可以将注册表值设置为以下值,其中 0 (0) 表示最宽松,3 表示最低允许。
设置 |
说明 |
0 |
沙盒模式一向处于禁用状态。 |
1 |
沙盒模式用于 Access,但不用于非 Access 程序。 |
2 |
沙盒模式用于非 Access 程序,但不用于 Access。 |
3 |
沙盒模式一向使用。 这是在安装 Access 时设置的#x0。 |
可在沙盒模式下使用的函数
下表列出了启用沙盒模式时可在 Access 数据库引擎查询中使用的函数。 列表中未显示的任何函数在沙盒模式下不可用。
Abs |
Array |
Asc |
Ascb |
Ascw |
Atn |
CBool |
CByte |
CCur |
CDate |
CDbl |
选择 |
Chr |
Chr$ |
Chrb |
Chrb$ |
Chrw |
Chrw$ |
Cint |
Clng |
Cos |
Csng |
Cstr |
Cvar |
CVDate |
CVErr |
日期 |
Date$ |
DateAdd |
DateDiff |
DatePart |
DateSerial |
DateValue |
日 |
DDB |
错误 |
Error$ |
Exp |
Fix |
格式 |
Format$ |
FormatCurrency |
FormatDateTime |
FormatNumber |
FormatPercent |
FV |
Hex |
十六进制$ |
小时 |
IIf |
IMEStatus |
InStr |
InStrb |
Int |
IPmt |
IRR |
IsDate |
IsEmpty |
IsError |
IsNull |
IsNumeric |
IsObject |
LCase |
LCase$ |
向左键 |
Left$ |
Leftb |
Leftb$ |
Len |
Lenb |
Log |
LTrim |
LTrim$ |
Mid |
Mid$ |
Midb |
Midb$ |
分钟 |
MIRR |
月 |
MonthName |
Now |
NPer |
Npm |
Oct |
Oct$ |
分区 |
Pmt |
PPmt |
PV |
QBColor 函数 |
Rate |
替换 |
RGB |
向右键 |
Right$ |
RightB |
Rightb$ |
Rnd |
Round |
RTrim |
RTrim$ |
秒 |
Sgn |
Sgr |
Sin |
SLN |
太空 |
Space$ |
Str |
Str$ |
StrComp |
StrConv |
String |
String$ |
StrReverse |
切换 |
SYD |
Tan |
时间 |
Time$ |
Timer |
TimeSerial |
TimeValue |
剪裁 |
Trim$ |
TypeName |
UCase |
UCase$ |
Val |
VarType |
Weekday |
年份 |
在沙盒模式下导致错误的函数
当从 Access Visual Basic for Applications (查询中的表达式调用函数时,或者从 Access 属性调用函数时,以下 VBA) 函数将导致错误。
AppActivate |
Beep |
日历 |
CallByName |
ChDir |
ChDrive |
命令 |
Command$ |
CreateObject |
CurDir |
CurDir$ |
DeleteSetting |
DoEvents |
Environ |
Environ$ |
EOF |
Err |
FileAttr |
FileCopy |
FileDateTime |
FileLen |
FreeFile |
GetAllSettings |
GetAttr |
GetObject |
GetSetting |
输入 |
Input$ |
InputB |
InputB$ |
终止 |
加载 |
Loc |
LOF |
随机化 |
重置 |
SaveSetting |
寻道 |
SendKeys |
SetAttr |
Shell |
Spc |
点按 |
卸载 |
UserForms |
宽度 |
沙盒模式阻止的函数
从查询中的表达式或 Access 属性调用函数时,沙盒模式会阻止以下 Access 函数。
AddAutoCorrect |
AddToFavorites |
ADOConnectString |
AnswerWizard |
应用程序 |
Assistant |
帮助 |
自动更正 |
AutomationSecurity |
BeginUndoable |
CloseCurrentDatabase |
CodeContextObject |
CodeDb |
COMAddIns |
CommandBars |
CompactRepair |
ConvertAccessProject |
CreateAccessProject |
CreateAdditionalData |
CreateControl |
CreateControlEx |
CreateDataAccessPage |
CreateForm |
CreateGroupLevel |
CreateNewWorkgroupFile |
CreateReport |
DataAccessPages |
DBEngine |
DDEExecute |
DDEInitiate |
DDEPoke |
DDERequest |
DDESend |
DDETerminate DDETerminateAll |
DefaultWebOptions |
DefaultWorkspaceClone |
DelAutoCorrect |
DeleteControl |
DeleteReportControl |
DoCmd |
Echo |
ExportCustomFixedFormat* |
ExportNavigationPane |
ExportXML |
FeatureInstall |
FileDialog |
FileSearch |
FollowHyperlink |
GetHiddenAttribute |
ImportNavigationPane |
ImportXML |
InsertText |
LanguageSettings |
LoadCustomUI* |
LoadFromText |
LoadPicture |
模块 |
NewAccessProject |
NewCurrentDatabase |
NewFileTaskPane |
OpenAccessProject |
OpenCurrentDatabase |
父级 |
ProductCode |
Quit |
参考资料 |
RefreshDatabaseWindow |
RefreshTitleBar |
ReloadAddIns |
ReplaceModule |
运行 |
RunCommand |
SaveAsText |
SetDefaultWorkGroupFile |
SetHiddenAttribute |
SetOption |
SetUndoRecording |
SysCmd |
TransformXML |
VBE |
沙盒模式阻止的属性
除了上一部分中列出的函数外,沙盒模式还阻止了一些对象属性。 下表列出了对象以及每个对象的阻止属性或属性。
对象 |
阻止的属性或属性 |
BoundObjectFrame |
对象 |
组合框 |
Recordset |
控件 |
对象 |
CurrentProject |
AccessConnection、BaseConnectionString、CloseConnection、Connection、OpenConnection |
CustomControl |
对象 |
表单 |
动态集 |
超链接 |
添加到收藏夹 |
Listbox |
Recordset |
ObjectFrame |
对象 |
Report |
Recordset |
SmartTagAction |
执行 |
屏幕 |
ActiveDataAccessPage |