本文提供有关沙盒模式允许的函数和属性的参考信息,以及 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\Engines
注意: 请注意,14.0 表示 Access 2010,15.0 表示 Access 2013,16.0 表示Access 2016及更新版本。
-
在注册表编辑器的右窗格中,在 “名称”下,双击“ 沙盒模式”。
此时将出现“编辑 DWORD 值”对话框。
-
在“数值数据”字段中,将值从“3”更改为“2”,然后单击“确定”。
-
关闭注册表编辑器。
-
-
在 Windows Vista
-
单击 “开始” 按钮,指向 “所有程序”,单击“ 附件”,然后单击“ 运行”。
-
在“打开”框中,键入 regedit,然后按 Enter。
即会启动注册表编辑器。
-
展开 HKEY_LOCAL_MACHINE 文件夹,导航到以下注册表项:
\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engines
注意: 请注意,4.0 表示 Access 2010,15.0 表示 Access 2013,16.0 表示Access 2016和更新版本。
-
在注册表编辑器的右窗格中,在 “名称”下,双击“ 沙盒模式”。
此时将出现“编辑 DWORD 值”对话框。
-
在“数值数据”字段中,将值从“3”更改为“2”,然后单击“确定”。
-
关闭注册表编辑器。
-
重要提示 请记住,如果不先信任数据库,那么,不管您是否更改此注册表设置,Access 都将禁用任何不安全的表达式。
可以将注册表值设置为以下值,其中 0 (零) 最宽松,3 表示最宽松。
设置 |
说明 |
0 |
沙盒模式随时处于禁用状态。 |
1 |
沙盒模式用于 Access,但不适用于非 Access 程序。 |
2 |
沙盒模式用于非 Access 程序,但不适用于 Access。 |
3 |
沙盒模式随时使用。 这是在安装 Access 时设置的默认值。 |
可在沙盒模式下使用的函数
下表列出了启用沙盒模式后,可在 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 |
错误 |
错误$ |
Exp |
Fix |
格式 |
格式$ |
FormatCurrency |
FormatDateTime |
FormatNumber |
FormatPercent |
FV |
Hex |
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 |
10 月 |
Oct$ |
分区 |
Pmt |
PPmt |
PV |
QBColor 函数 |
Rate |
替换 |
RGB |
右对齐 |
Right$ |
RightB |
Rightb$ |
Rnd |
圆形 |
RTrim |
RTrim$ |
秒 |
Sgn |
Sgr |
Sin |
SLN |
太空 |
空格键$ |
Str |
Str$ |
StrComp |
StrConv |
String |
String$ |
StrReverse |
切换 |
西德妮 |
Tan |
时间 |
Time$ |
Timer |
TimeSerial |
TimeValue |
剪裁 |
Trim$ |
TypeName |
UCase |
UCase$ |
Val |
VarType |
Weekday |
年 |
在沙盒模式下导致错误的函数
以下Visual Basic for Applications (VBA) 函数从 Access 数据库引擎查询中的表达式调用,或者从 Access 属性调用时,将导致错误。
AppActivate |
哔 |
日历 |
CallByName |
ChDir |
ChDrive |
命令 |
Command$ |
CreateObject |
CurDir |
CurDir$ |
DeleteSetting |
DoEvents |
环境 |
Environ$ |
Eof |
犯 错 |
FileAttr |
FileCopy |
FileDateTime |
FileLen |
FreeFile |
GetAllSettings |
GetAttr |
GetObject |
GetSetting |
输入 |
输入$ |
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 |