SetValue 宏操作

适用于:Access 2013、Office 2013

可以使用 SetValue 操作来设置 Microsoft Access 字段、控件,或表单、表单数据表或报表上属性的值。

注意

  • 不能使用 SetValue 操作来设置可返回对象的 Access 属性值。
  • 如果数据库不受信任,则不允许执行此操作。

Setting

SetValue 操作具有下列参数。

操作参数

说明

Item

想要设置值的字段、控件或属性名称。 在“宏生成器”窗格的“操作参数”部分,在“Item”框中输入字段、控件或属性名称。 引用此项目时必须使用完整的语法,例如 controlname(适用于表单上的控件或从其中调用宏的报表)或Forms!formname!controlname。 这是必需参数。

Expression

Access 用于设置此项目的值的表达式。 必须始终使用完整的语法来引用表达式中的任何对象。 例如,将“员工”表单上“工资”控件中的值增加 10%,请使用 Forms!Employees!Salary*1.1。 这是必需参数。

注释:不得在此参数表达式前使用等号(=)。 若使用等号,则 Access 会对表达式求值,然后使用此值作为此参数中的表达式。 如果表达式为一个字符串,将会产生意外结果。

例如,如果为此参数键入 =“String1” ,Access 首先会将表达式计算为 String1。 然后使用 String1 作为此参数的表达式,期望在表单或调用宏的报表上找到名为 String1 的控件或属性。

注意

在 Access 数据库(.mdb 或 .accdb)中,单击“生成”按钮,以便使用“表达式生成器”为这些参数中的任意一个创建一个表达式。

说明

此操作可用于设置表单、表单数据表或报表上的字段或控件的值。 此外可以在任意视图中设置几乎所有控件、表单和报表属性的值。 若要了解是否可通过使用宏来设置特定属性,以及可以在哪些视图中设置,请参阅在 Visual Basic 编辑器中有关该属性的“帮助”主题。

即使表单不包含绑定到字段的控件,也可以在表单基础表中设置字段的值。 使用语法 Formsformname!“”框中的 fieldname,用于设置此类字段的值。 还可以 使用语法 Reports 引用报表的基础表中的字段!reportnamefieldname,但报表上必须有一个绑定到此字段的控件,或者必须在报表的计算控件中引用该字段。

如果在表单上设置控件值,SetValue 操作不会触发控件的表单级别的验证规则,但如果控件是绑定的控件,则会触发基础字段的表级别验证规则。 SetValue 操作还会触发重新计算,但重新计算不会立即发生。 若要触发立即重新绘制并强制完成重新计算,则使用RepaintObject 操作。 使用 SetValue 操作在控件中设置的值也不受在控件或基础字段的 InputMask 属性中设置的输入掩码集的影响。

若要更改控件值,可以在由控件的 AfterUpdate 事件属性指定的宏中使用 SetValue 操作。 但是,不能在控件的 BeforeUpdate 事件属性指定的宏中使用 SetValue 操作来更改控件值(虽然可使用 SetValue 操作来更改其他控件的值)。 也可以在表单的 BeforeUpdateAfterUpdate 属性指定的宏中使用 SetValue 操作来更改在当前记录中任何控件的值。

注意

不能使用 SetValue 操作来设置以下控件的值:

  • 报表上的绑定控件和计算控件。
  • 表单上的计算控件。

提示

可以使用 SetValue 操作来隐藏或显示“表单”视图中的表单。 输入窗体formname**。“”框中可见**,“表达式”框中为“否”或“”。 设置模式表单的 Visible 属性为 No,以隐藏表单并使其成为无模式。 将属性设置为 Yes 以显示表单并使其再次成为模式。

在宏中使用 SetValue 操作来更改控件值或添加新数据不会触发 BeforeUpdateBeforeInsertChange 之类的事件,在用户界面的这些控件中更改或输入数据时通常发生此类事件。 如果使用 Visual Basic for Applications (VBA) 模块来设置控件值,也不会发生这些事件。

此操作在 VBA 模块中不可用。 直接在 VBA 中设置值。

示例

使用宏来设置控件值

下列宏从“供应商”表单上的按钮打开“添加产品”表单。 显示如何使用 EchoCloseWindowOpenFormSetValueGoToControl 操作。 SetValue 操作将“产品”表单上的 SupplierID 控件设置为“供应商”表单上的当前供应商。 然后 GoToControl 操作会将焦点移动至 CategoryID 字段,在这里开始输入新产品数据。 此宏应附加到“供应商”表单上的“添加产品”按钮。

操作

参数:设置

注释

Echo

Echo On: No

运行宏时停止屏幕更新。

CloseWindow

Object Type: FormObject Name: Product List Save: No

关闭“产品列表”表单。

OpenForm

Form Name: Products View: FormData Mode: AddWindow Mode: Normal

打开“产品”表单。

SetValue

Item: [Forms]![Products]![SupplierID] Expression: SupplierID

在“供应商”表单上将 SupplierID 控件设置为当前供应商。

GoToControl

Control Name: CategoryID

转到 CategoryID 控件。