使用 SetValue 操作可以设置 Microsoft Access 窗体、窗体数据表或报表上的字段、控件或属性的值。
注释 不能使用 SetValue 操作设置返回对象的 Access 属性值。
SetValue 操作具有以下参数:
操作参数 |
说明 |
项目 |
要设置值的字段、控件或属性的名称。在“宏”窗口“操作参数”节的“项目”框中输入字段、控件或属性的名称。必须用完整的语法形式引用该项,如 controlname (这是调用宏的窗体或报表上一个控件的名称)或 Forms!formname!controlname。该参数是必选参数。 |
表达式 |
Access 使用表达式来对该项的值进行设置。必须用完整的语法形式来引用表达式中的任何对象。例如,要将“雇员”窗体上的薪金控件的值上调百分之十,可用 Forms!雇员!薪金*1.1 语句形式。该参数是必选参数。 注释 在此参数中,不应在表达式的前面使用等号 (=),否则 Access 将计算表达式的值,并将所计算出的值用作此参数中的表达式。这在表达式为字符串的情况下会产生意外的结果。 例如,如果为本参数键入了="String1",Access 首先计算表达式的值为 String1,然后用 String1 作为参数表达式,在调用宏的窗体或报表上查找一个名为“String1”的控件或属性。 |
注释 在 Access 数据库 (.mdb) 中, 单击“项目”或“表达式”框右侧的“生成器”按钮 ,即可使用表达式生成器来创建上述某个参数的表达式。
使用该操作可以对窗体、窗体数据表或报表上的字段或控件的值进行设置。也可以对任何视图中几乎所有的控件、窗体和报表的属性值进行设置。要了解某个特定的属性是否可在宏中进行设置以及可在何种视图中对该属性进行设置,请参阅对应属性的“帮助”主题。
此外,也可以对窗体基础表中的字段值进行设置,即使窗体不含有绑定到该字段的控件。请在“项目”框中使用 Forms!formname!fieldname 的语法形式来设置这些字段的值。也可以用 Reports!reportname!fieldname 的语法形式来引用报表基础表中的字段值,但报表上必须有一个绑定到该字段的控件,或必须在报表上的计算控件中引用该字段。
在设置窗体控件的值时,SetValue 操作不会触发控件窗体级别的有效性规则,但在控件是绑定控件时会触发基础字段的表级别有效性规则。SetValue 操作还会触发重新计算,但这不会立即进行。要立即触发重新绘制并强制完成重新计算,请用 RepaintObject 操作。用 SetValue 操作设置的控件值也不会受输入掩码的影响。该掩码是在控件或基础字段的“输入掩码”属性中设置的。
要更改控件的值,可在宏中使用由控件的“更新后”事件属性指定的 SetValue 操作。不过,不能在由控件的“更新前”事件属性指定的宏中使用 SetValue 操作来改变控件的值(虽然可用 SetValue 操作改变其他控件的值)。也可在由窗体的“更新前”或“更新后”属性指定的宏中使用 SetValue 操作来更改当前记录上任何控件的值。
注释 不能用 SetValue 操作设置以下控件的值:
? | 报表上的绑定控件和计算控件。 |
? | 窗体上的计算控件。 |
Forms.Visible模式
在宏中用 SetValue 操作来更改控件的值或添加新的值不会触发诸如“更新前”、“插入前”或“更改”等事件,这些事件是当在用户界面更改或输入这些控件的值时发生的。当在 Visual Basic 中设置控件的值时,这些事件也不会发生。
在 Microsoft Visual Basic 中没有该操作。在 Visual Basic 中可直接对值进行设置。
下面的宏使用“供应商”窗体中的一个按钮打开“增加产品”窗体。它显示了 Echo、Close、OpenForm、SetValue 及 GoToControl 操作的使用方法。SetValue 操作将“产品”窗体中的“供应商ID”控件设置为“供应商”窗体中的当前供应商,然后 GoToControl 操作将焦点移动到“类别ID”字段,以便输入新产品的数据。该宏应附加到“供应商”窗体的“添加产品”按钮上。
操作 |
参数:设置 |
备注 |
Echo |
打开回响:否 |
在宏执行当中停止屏幕更新。 |
Close |
对象类型:窗体 对象名称:产品列表 保存:否 |
关闭“产品列表”窗体。 |
OpenForm |
窗体名称:产品 视图:窗体 数据模式:添加 窗口模式:普通 |
打开“产品”窗体。 |
SetValue |
项目:[Forms]![产品]![供应商ID] 表达式:供应商ID |
将“供应商ID”控件设为“供应商”窗体中的当前供应商。 |
GoToControl |
控件名称:类别ID |
转至“类别ID”控件。 |