使用 GoToControl 操作,可以把焦点移到打开的窗体、窗体数据表、表数据表或查询数据表中当前记录的指定字段或控件上。如果要让某一特定的字段或控件获得焦点,可以使用该操作。然后可将获得焦点的字段或控件用于比较或 FindRecord 操作。另外,还可以根据特定的条件,使用该操作在窗体中进行定位。例如,如果用户在“健康保险”窗体中的“婚姻”控件下输入“否”,那么焦点会自动跳过“配偶姓名”控件而移到下一个控件。
注释 此操作不能用于数据访问页。
GoToControl 操作具有下列参数:
操作参数 |
说明 |
控件名称 |
要在其中放置焦点的字段或控件的名称。在“宏”窗口“操作参数”部分的“控件名称”框中输入字段名称或控件名称。这是必需的参数。 注释 在“控件名称”参数中只需输入字段名称或控件名称,而不必输入完全合格的标识符,如 Forms!产品![Product ID]。 |
不能使用 GoToControl 操作将焦点移到隐藏窗体的控件上。
若要在 Visual Basic 中运行 GoToControl 操作,可使用 DoCmd 对象的 GoToControl 方法。也可以使用 SetFocus 方法,将焦点移到窗体或其任何子窗体的控件上或者打开的表、查询、窗体数据表的字段中。
下面的宏使用“供应商”窗体中的一个按钮打开“增加产品”窗体。它显示了 Echo、Close、OpenForm、SetValue 及 GoToControl 操作的使用方法。SetValue 操作将“产品”窗体中的“供应商ID”控件设置为“供应商”窗体中的当前供应商,然后 GoToControl 操作将焦点移到“类别ID”字段,以便输入新产品的数据。该宏应附加到“供应商”窗体的“添加产品”按钮上。
操作 |
参数:设置 |
备注 |
Echo |
打开回响:否 |
在宏执行当中停止屏幕更新。 |
Close |
对象类型:窗体 对象名称:产品列表 保存:否 |
关闭“产品列表”窗体。 |
OpenForm |
窗体名称:产品 视图:窗体 数据模式:添加 窗口模式:普通 |
打开“产品”窗体。 |
SetValue |
项目:[Forms]![产品]![供应商ID] 表达式:供应商ID |
将“供应商ID”控件设为“供应商”窗体中的当前供应商。 |
GoToControl |
控件名称:类别ID |
移到“类别ID”控件。 |
下面的验证宏检查在“供应商”窗体中输入的邮政编码。它显示 StopMacro、MsgBox、CancelEvent 及 GoToControl 操作的使用方法。条件表达式用于检查在该窗体上记录中输入的国家/地区和邮政编码。如果邮政编码不符合其国家/地区的正确格式,宏将显示消息框,并取消对记录的保存。然后您将返回到“邮政编码”控件并可以在那里改正错误。该宏应附加到“供应商”窗体的 BeforeUpdate 属性。
条件 |
操作 |
参数:设置 |
备注 |
IsNull([国家/地区]) |
StopMacro |
如果“国家/地区”为 Null,就无法验证邮政编码。 |
|
[国家/地区] In ("法国","意大利","西班牙") And Len([邮政编码]) <> 5 |
MsgBox |
消息:邮政编码必须为 5 个字符。 发嘟嘟声:是 类型:信息 标题:邮政编码错误 |
如果邮政编码不是 5 个字符,则会显示消息。 |
... |
CancelEvent |
取消事件。 |
|
GoToControl |
控件名称:邮政编码 |
||
[国家/地区] In ("澳大利亚","新加坡") And Len([邮政编码]) <> 4 |
MsgBox |
消息:邮政编码必须为 4 个字符。 发嘟嘟声:是 类型:信息 标题:邮政编码错误 |
如果邮政编码不是 4 个字符,则会显示消息。 |
... |
CancelEvent |
取消事件。 |
|
GoToControl |
控件名称:邮政编码 |
||
([国家/地区] = "加拿大") And ([邮政编码] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
MsgBox |
消息:邮政编码无效。加拿大编码示例:H1J 1C3 发嘟嘟声:是 类型:信息 标题:邮政编码错误 |
如果邮政编码不符合加拿大的有效格式,则会显示消息。(加拿大编码示例:H1J 1C3) |
... |
CancelEvent |
取消事件。 |