适用于:Access 2013、Office 2013
可以使用 OpenForm 操作在窗体视图、设计视图、打印预览或数据表视图中打开窗体。 可以选择窗体的数据输入模式和窗口模式,并限制窗体显示的记录。
Setting
OpenForm 操作具有以下参数。
操作参数 |
说明 |
---|---|
窗体名称 |
要打开的窗体的名称。 “宏生成器”窗格“操作参数”部分中的“窗体名称”框显示当前数据库中的所有窗体。 这是必需参数。 如果在库数据库中运行包含 OpenForm 操作的宏,Microsoft Access 首先在库数据库中查找具有此名称的表单,然后在当前数据库中查找。 |
View |
窗体将在其中打开的视图。 在“视图”框中单击“窗体”、“设计”、“打印预览”、“数据表”、“数据透视表”或“数据透视图”。 默认值为 Form。 注意: View 参数设置替代窗体的 DefaultView 和 ViewsAllowed 属性的设置。 例如,如果窗体的 ViewsAllowed 属性设置为 “数据表”,则仍可以使用 OpenForm 操作在窗体视图中打开窗体。 |
Filter Name |
一个筛选器,用于限制窗体的记录或对其进行排序。 您可以输入现有查询的名称,也可以输入另存为查询的筛选的名称。 但是,查询必须包含要打开的窗体中的所有字段,或者将其 OutputAllFields 属性设置为 “是”。 |
Where 条件 |
有效的 SQL WHERE 子句 (没有 WHERE) 或表达式一词,Access 使用该词从窗体的基础表或查询中选择记录。 如果您通过“筛选名称”参数选择筛选,Access 会将此 WHERE 子句应用于筛选的结果。 若要打开窗体并将其记录限制为另一窗体上控件的值指定的记录,请使用以下表达式: [fieldname] = Forms![formname]![其他窗体上的 controlname] 将 fieldname 替换为要打开的窗体的基础表或查询中的字段名称。 将其他窗体上的formname 和 controlname 替换为另一个窗体的名称,以及包含希望第一个窗体中的记录匹配的值的另一个窗体上的控件。 注意: Where Condition 参数的最大长度为 255 个字符。 如果需要输入比此更长的复杂 SQL WHERE 子句,请改用 Visual Basic for Applications (VBA) 模块中的 DoCmd 对象的 OpenForm 方法。 在 VBA 中,可输入长达 32,768 个字符的 SQL WHERE 子句语句。 |
数据模式 |
表单的数据输入模式。 这仅适用于在窗体视图或数据表视图中打开的窗体。 请单击“添加”(用户可添加新记录,但不能编辑现有记录)、“编辑”(用户可编辑现有记录和添加新记录)或“只读”(用户只能查看记录)。 默认值为“编辑”。 注意
|
窗口模式 |
窗体打开的窗口模式。 单击“ 普通 ” (窗体在按其属性) 、 隐藏 (窗体隐藏 ) 、图标 (窗体打开最小化为屏幕) 底部的小标题栏或 对话框 (窗体的 模式 和 PopUp 属性设置为 “是) ”。 默认值为“普通”。 注意:使用选项卡式文档时,某些 窗口模式 参数设置不适用。 要切换到重叠窗口,请执行下列操作:
|
备注
此操作类似于双击导航窗格中的窗体,或右键单击导航窗格中的窗体,然后选择视图。
窗体可以是模式的, (必须先关闭或隐藏窗体,然后用户才能执行任何其他操作) 或无模式 (用户可以在窗体打开) 移动到其他窗口。 它也可以是弹出窗体 (窗体,用于收集或显示保留在所有其他 Access 窗口) 顶部的信息。 在设计窗体时设置 模式 和 PopUp 属性。 如果使用 Normal 作为 窗口模式 参数,窗体将在这些属性设置指定的模式下打开。 如果使用 Dialog 作为 窗口模式 参数,则这些属性都设置为 “是”。 在显示或还原窗体时,以隐藏或图标形式打开的窗体将返回到由其属性设置指定的模式。
打开窗口 模式 参数设置为 Dialog 的窗体时,Access 会暂停宏,直到窗体关闭或隐藏。 通过使用 SetValue 操作,可以通过将窗体的 Visible 属性设置为“否”来隐藏窗体。
提示
可以在导航窗格中选择窗体,并将其拖动到宏操作行。 这会自动创建一个 OpenForm 操作,用于在窗体视图中打开窗体。
应用的筛选器和 WHERE 条件将成为窗体的 Filter 属性的设置。
示例
使用宏来设置控件值
下列宏从“供应商”表单上的按钮打开“添加产品”表单。 显示如何使用 Echo、CloseWindow、OpenForm、 SetValue 和 GoToControl 操作。 SetValue 操作将“产品”窗体上的“供应商 ID”控件设置为“供应商”窗体上的当前供应商。 然后 ,GoToControl 操作将焦点移动到“类别 ID”字段,可在其中开始输入新产品的数据。 此宏应附加到“供应商”表单上的“添加产品”按钮。
操作 |
参数:设置 |
注释 |
---|---|---|
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 |
在“供应商”窗体上将“供应商 ID”控件设置为当前供应商。 |
GoToControl |
Control Name: CategoryID |
转到“类别 ID”控件。 |
以下宏在“供应商”窗体的右下角打开“产品列表”窗体,显示当前供应商的产品。 它显示了 Echo、 MessageBox、 GoToControl、 StopMacro、 OpenForm 和 MoveAndSizeWindow 操作的用法。 它还演示了将条件表达式与 MessageBox、 GoToControl 和 StopMacro 操作配合使用。 此宏应附加到“供应商”窗体上的“审阅产品”按钮。
使用宏同步表单
条件 |
操作 |
参数:设置 |
注释 |
---|---|---|---|
Echo |
Echo On: No |
运行宏时停止屏幕更新。 |
|
IsNull ([SupplierID]) |
MessageBox |
消息:移动到要查看其产品的供应商记录,然后再次单击“查看产品”按钮。 Beep: YesType: NoneTitle: 选择供应商 |
如果“供应商”窗体上没有当前供应商,则显示一条消息。 |
... |
GoToControl |
控件名称:CompanyName |
将焦点移动到 CompanyName 控件。 |
... |
StopMacro |
停止宏。 |
|
OpenForm |
窗体名称:产品列表 视图: 数据表Filter 名称: Where Condition: [SupplierID] = [Forms]![供应商]![SupplierID] 数据模式: 只读窗口模式: 普通 |
打开“产品列表”窗体并显示当前供应商的产品。 |
|
MoveAndSizeWindow |
右:0.7799“ 向下:1.8” |
将“产品列表”窗体置于“供应商”窗体的右下角。 |