说明
使用该操作可以对窗体、窗体数据表或报表上的字段或控件的值进行设置。也可以对任何视图中几乎所有的控件、窗体和报表的属性值进行设置。要了解某个特定的属性是否可在宏中进行设置以及可在何种视图中对该属性进行设置,请参阅对应属性的“帮助”主题。
此外,也可以对窗体基础表中的字段值进行设置,即使窗体不含有绑定到该字段的控件。请在“项目”框中使用 Forms!formname!fieldname 的语法形式来设置这些字段的值。也可以用 Reports!reportname!fieldname 的语法形式来引用报表基础表中的字段值,但报表上必须有一个绑定到该字段的控件,或必须在报表上的计算控件中引用该字段。
在设置窗体控件的值时,SetValue 操作不会触发控件窗体级别的有效性规则,但在控件是绑定控件时会触发基础字段的表级别有效性规则。SetValue 操作还会触发重新计算,但这不会立即进行。要立即触发重新绘制并强制完成重新计算,请用 RepaintObject 操作。用 SetValue 操作设置的控件值也不会受输入掩码的影响。该掩码是在控件或基础字段的“输入掩码”属性中设置的。
要更改控件的值,可在宏中使用由控件的“更新后”事件属性指定的 SetValue 操作。不过,不能在由控件的“更新前”事件属性指定的宏中使用 SetValue 操作来改变控件的值(虽然可用 SetValue 操作改变其他控件的值)。也可在由窗体的“更新前”或“更新后”属性指定的宏中使用 SetValue 操作来更改当前记录上任何控件的值。
注释 不能用 SetValue 操作设置以下控件的值:
用 SetValue 操作可以隐藏或显示“窗体”视图中的一个窗体。请在“项目”框中输入
Forms!formname
.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”控件。 |