以下部分演示如何使用员工表单以及如何对其进行编程。 提供了对象名称,以便你可以轻松地在 Northwind 2.0 Starter Edition 数据库中检查它们。
使用员工表单
以下是有关使用员工列表表的重要详细信息:
- 从主菜单开始,从左侧菜单中选择 “员工” 会显示右侧工作区中 (sfrmMainMenu_EmployeeList) 的员工列表。
- 每个员工的 ID 都是一个超链接,可在弹出窗体中打开该员工的记录以编辑其详细信息。
- 要添加新员工,请单击标题行最右侧的“ 添加员工 ”按钮,这会在弹出表单中打开新员工记录, (sfrmEmployeeDetail_OrderList) 添加他们的详细信息。
使用员工详细信息弹出表单
以下是有关使用员工详细信息弹出表单的重要详细信息:
frmEmployeeDetail (的“员工详细信息”弹出窗体) 允许编辑和添加员工记录。
所有员工都需要填写 3 个字段:名字、姓氏和职务。
默认访问错误消息会在尝试保存员工记录之前的一个或多个未完成时提醒你。 未对其他字段(例如电子邮件地址和电话号码)应用任何验证。 用户负责正确设置格式,例如 (000) 000-000。 对“游戏”下拉控件的默认访问验证将条目限制为预选值列表。 可以使用值字段控件的默认 Access 行为再次添加新游戏。 选择窗体上的下拉列表将显示编辑图标。
员工照片作为附件字段存储在表中。 使用附件字段的默认 Access 行为添加新图像或更改现有图像。
如果员工创建了订单,则员工详细信息弹出窗口右侧的子窗体将在数据表视图中列出这些订单。
可以通过单击“订单”子窗体中的超链接订单 ID # 来编辑该员工的任何现有订单 (sfrmOrderDetails) 。
对员工表单进行编程
员工表单在窗体控件中同时使用 VBA 和嵌入宏来执行基本逻辑。 它们包含两个独立宏和多个嵌入式宏。
员工列表
Employee List 窗体 (sfrmMainMenu_EmployeeList) 从 RecordSource 属性) 中的简单查询 qryEmployeeList (获取其数据。 建议使用基于单表查询的数据输入窗体。
员工列表窗体上的控件处于启用状态,这意味着你可以选择它们,而将其锁定,这意味着它们为只读。
基于多值字段的“标题”字段是一个下拉列表或组合框。 它的行源是一个值列表,这意味着可用的可选项直接包含在该字段中。 该列表的 “限制到列表 ”属性设置为“是”,因为此窗体不用于编辑。 多值字段仅作为功能的说明而包含在内,不作为建议。
在员工列表 (sfrmMainMenu_EmployeeList) 中, Key Up 和 Key Down 事件上的两个子过程响应用户在数据表视图中的光标移动。 它们检测光标向左、向右、上方或下方 () 移动的方向,并调用 VBA 函数,将焦点移动到相应的控件。
在 frmEmployeeDetail) (详细信息窗体中编辑现有员工记录并添加新记录。
可以通过以下两种方式之一从员工列表中以可编辑的弹出窗体形式打开“员工详细信息”窗体:
- 通过选择一个 EmployeeID(其格式设置为显示为超链接),打开“员工详细信息”窗体,然后将其筛选为仅该员工记录。
- 通过选择窗体标题上的 添加员工 标签,打开员工详细信息窗体并将焦点移动到新记录。 所有当前记录都在窗体的记录源中。
请注意,这两种方法对性能的影响可能不同。 将表单筛选为单个记录可最大限度地减少要从表传输的数据量。 对于较小的记录集,差异可能并不明显。
员工详细信息
(frmEmployeeDetail) 的“员工详细信息”窗体从简单的查询 qryEmployeeDetails (窗体的 RecordSource 属性) 中获取其数据。 建议将数据输入窗体基于单表查询。
qryEmployeeDetails 中的 SELECT 子句使用星号通配符 (*) 来选择表中的所有字段,而 qryEmployeeList 中的 SELECT 子句列出了特定字段。 使用通配符可检索基础表中的新字段,而无需对查询进行其他编辑。 对于特定字段的列表,这是不可能的。 特定字段的列表会将记录集限制为仅显示窗体中需要的字段。 您的设计应基于考虑哪种方法更适合您的要求,尽管应优先考虑最不需要将来维护的方法,即使用通配符。
员工详细信息窗体上的控件处于启用状态且未锁定,这意味着您可以选择和编辑它们。
基于多值字段的“标题”字段是一个下拉列表或组合框。 它的行源是一个值列表,这意味着可用的可选项直接包含在该字段中。 该列表的 “限制到列表 ”属性设置为“否”,因为此窗体用于编辑。 添加或编辑标题使用内置的 Access 方法,因此不需要代码。 多值字段仅作为功能的说明而包含在内,不作为建议。
您可以在详细信息窗体中编辑现有员工记录和新记录。
可以通过以下两种方式之一从员工列表中以可编辑的弹出窗体形式打开“员工详细信息”窗体:
- 通过选择一个 EmployeeID(其格式设置为显示为超链接),打开“员工详细信息”窗体,并将其筛选为仅该员工记录。
- 通过选择窗体标题上的 添加员工 标签,打开员工详细信息窗体并将焦点移动到新记录。 所有当前记录都在窗体的记录源中。
将窗体筛选为单个记录可最大限度地减少要从表传输到窗体的数据量。 对于较小的记录集(如示例数据),差异可能并不明显。
“个人信息”右侧的子窗体控件 (sfrmEmployeeDetail_OrderList) 显示当前所选员工的订单 (如果有) 。 子窗体控件中的子窗体是从 Orders 部分重新调整用途的。 子窗体控件的内置 Access LinkMasterFields/LinkChildFields 属性同步和筛选为每个员工显示的记录。
在 frmEmployeeDetail) (员工详细信息中,窗体的 “当前事件时” 和“ 关闭事件时 ”上的两个子过程响应这些事件:
- “当前记录”显示或隐藏“添加员工”标签,具体取决于当前记录是现有记录,还是新员工的记录、已启动但尚未保存。
- 关闭时 执行两个维护操作。 它将重新查询“员工详细信息”子窗体中的记录集,以更新详细信息窗体中所做的任何添加或更改。 它通过调用该宏来重新同步主菜单中员工计数的显示。
宏
macMainMenu_UpdateSubs 此宏是独立的,在发生某些事件(包括员工表单)时运行。 在 macMainMenu_UpdateSubs 中,子宏根据它们所应用的功能进行分组。 对于员工,子宏将员工记录计数与主菜单上显示的计数同步。
嵌入的宏 员工表单主要由表单中包含的嵌入宏驱动,并且只能从表单中编辑。 在员工列表中 (sfrmMainMenu_EmployeeList) :
- EmployeeID 超链接 单击员工列表窗体中的 EmployeeID 将打开“员工详细信息”窗体,并将焦点设置到所选的员工记录。
- 添加员工标签 单击“ 添加员工 ”按钮将打开 frmEmployeeDetail) (员工详细信息窗体,并将焦点设置到新记录。
- 员工详细信息 单击标题上的“ 添加员工 ”按钮将保存当前记录并将焦点设置到新记录。