本文提供有关沙盒模式允许和 Access 中的块的函数和属性的参考信息。 请注意,Access 允许多个较新的函数在沙盒模式下运行,包括 MonthName 和 StrReverse,现在会阻止其他几个函数,包括 Assistance、 ExportNavigationPane 和 LoadCustomUI。 继续操作时,请记住,必须信任 () 数据库中启用内容,或将数据库置于受信任的位置,才能使用本文中的信息。
本文内容
设置沙盒模式以运行不安全表达式
向数据库添加表达式时,Access 会在名为沙盒模式的操作环境中运行该表达式。 默认情况下,Access 启用沙盒模式,而沙盒模式 始终 禁用不安全的表达式,即使在信任数据库之后也是如此。
如果信任某个数据库,并且想要运行沙盒模式禁用的表达式,可以通过更改禁用沙盒模式的注册表项来运行该表达式。 请记住,必须首先信任数据库才能执行本部分中的步骤。
此图显示了在决定是否运行不安全表达式时遵循的过程。
警告 错误地编辑注册表可能会严重损坏操作系统,需要重新安装它。 Microsoft 无法保证可解决因注册表编辑不当而引起的问题。 编辑注册表之前,请备份任何有价值的数据。 有关如何使用和保护计算机注册表的最新信息,请参阅 Microsoft Windows 帮助。
如果不熟悉注册表或自己不习惯更改注册表项,请联系正在或考虑将数据库从早期版本的 Access 转换为 Access 文件格式的人员。 此外,您还必须拥有计算机上的管理员权限才能更改注册表值。
更改注册表项
重要
按照下列步骤进行操作可以允许计算机上的所有用户在所有 Access 实例中运行不安全的表达式。
在 Windows 10 中
在任务栏上,单击“ 开始”,然后单击“ 运行”。
在“打开”框中,键入 regedit,然后按 Enter。
即会启动注册表编辑器。展开 HKEY_LOCAL_MACHINE 文件夹,导航到以下注册表项:
\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engines注意
请注意,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 |
| 切换 | SYD | 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 函数。
沙盒模式阻止的属性
除了上一部分中列出的函数外,沙盒模式还阻止了许多对象属性。 下表列出了对象以及每个对象的阻止属性或属性。
| 对象 | 阻止的属性或属性 |
|---|---|
| BoundObjectFrame | 对象 |
| 组合框 | Recordset |
| 控件 | 对象 |
| CurrentProject | AccessConnection、BaseConnectionString、CloseConnection、Connection、OpenConnection |
| CustomControl | 对象 |
| 表单 | 动态集 |
| 超链接 | 添加到收藏夹 |
| Listbox | Recordset |
| ObjectFrame | 对象 |
| Report | Recordset |
| SmartTagAction | 执行 |
| 屏幕 | ActiveDataAccessPage |