以下部分提供有关用户界面设计以及为何做出某些选择的信息。 提供了对象名称,以便你可以轻松地在 Northwind 2.0 Starter Edition 数据库中检查它们。
用户界面
Northwind 2.0 入门版中的用户界面具有新式外观,简单灵活。 主菜单窗体 (frmMainMenu) 的左侧有一个操作列供用户选择菜单项,右侧有一个大型工作区,从菜单中选择时将显示客户、产品或订单列表。 此设计一次将一个菜单项“拉”到主菜单的工作区中,并避免在其他窗口之上打开多个新窗体。
制表符窗体
Access 支持两种类型的窗体。 默认为 Northwind 2.0 入门版使用的选项卡式文档。 传统的替代方法是使用重叠窗口。
菜单的现代增强功能
frmMainMenu) (主菜单窗体还包括一个基本仪表板,其中显示有关订单、产品、客户和员工的摘要信息。 例如,在订单标签下,您可以看到当前订单数。 宏根据需要更新仪表板信息;它们在输入订单、订购或销售产品等时执行。 以下是可用于通过新式外观和增强功能改善用户体验的示例。
菜单功能
有两种类型的菜单项。 大多数菜单项标识应用程序的某个区域,用户可以选择该区域进行进一步工作。 他们加载该区域的记录列表。 由于添加新订单是最频繁的活动,因此主菜单中还有一个 “添加订单” 项,该项会绕过现有订单列表,直接转到 (sfrmMainMenu_OrderList) 添加新订单的窗体。
标签的新式外观
标签有两种使用方式:
信息显示 传统标签标识应用程序及其元素,并向用户指出信息。 它们通常标识相邻控件的内容。 例如,“名字”标识员工名字的列。
操作标签 某些标签的工作方式类似于命令按钮。 单击它们将执行代码。 使用标签而不是传统的命令按钮呈现新式外观。 传统命令按钮的工作方式相同,你可能更喜欢更传统的外观。 事实上,Access 支持几种不同的按钮样式,因此请随意浏览。
尽管它们在外观上相似,但操作标签上的标题可以告诉用户如何使用它们。 除了列表为复数,一项为单数外,标签还可以具有关键字,如“Add”。
选择菜单项
要选择要处理的数据库区域,例如添加新订单、管理客户或添加或更新产品,请单击该菜单项。 单击它会将订单、客户、产品等的不可编辑列表加载到工作区中。
从列表中选择记录
列表中每条记录的超链接字段将打开该项目的编辑窗体 - 单个客户、订单、产品等在主菜单上的弹出窗体中。 关闭弹出窗体将返回到主菜单。
弹出式编辑表单
您可以在弹出式表单中编辑现有记录或添加新记录。 每个弹出窗体都会打开所选记录,并准备好接受您对该记录所做的更改。
必需值
表中的某些字段具有必需值。 Access 无法保存必填字段中没有值的记录因此,窗体会显示默认的 Access 错误消息来警告你出现该问题。 完成对现有记录的编辑或添加新记录后,关闭弹出窗体以返回到主菜单中的列表。
单个窗体设计
在本节中,我们将重点介绍每种窗体的功能。
主菜单
frmMainMenu) (主菜单是 Access 主窗体/子窗体设计。 作为选项卡式文档,主菜单窗体以为模板选择的分辨率填充屏幕。 如前所述,标签有两种使用方式:用于标识应用程序的各个部分并显示有关这些项的信息,以及作为命令按钮。
菜单本身占据主窗体左侧的狭窄垂直空间。 七个标签执行其标题指示的操作,例如,获取客户列表。
右侧的子窗体控件占据主窗体的最大份额。 单击 “菜单项” 会执行宏,这些宏将子窗体控件中的子窗体替换为连续视图中的相应窗体。
选择项目列表
基本的用户工作流是选择并加载项目列表,例如订单 (sfrmMainMenu_OrderList) 。 列表为只读,因为它们仅用于帮助用户导航到并从列表中一次选择一条记录:订单、客户、员工和产品。
这些列表表单以连续视图显示,其中同时出现许多记录。 一次一个记录(当前记录)具有焦点。 记录选择器 (连续视图窗体左侧深色矩形中的白色箭头) 指示哪个记录是最新的。
列表中的项可能不会显示表中的所有字段;有时只需要字段的子集。
从列表中选择一个项目
当项目列表被“拉”到主菜单的子窗体中时,单击超链接将选择该项目的详细信息。 超链接使用记录的主键来选择适当的记录进行编辑。
当单个记录的详细信息打开时,它们将显示在主菜单上方的新窗口中。 详细信息为弹出表单;只要他们保持开放,他们就会专注于自己。 您可以在弹出式表单中一次与一条记录交互。
与列表不同,明细表单显示该类型项目的表中的所有字段。 Access 窗体通常绑定到表或基于该表的查询,这意味着可以直接在窗体中编辑、添加或删除该表的值和记录,而无需进行其他编码。 当然,某些控件是不可编辑的,因为它们属于应用程序。 例如,可以显示主键,但用户无法编辑它们。 因此,许多 Access 应用程序根本不在窗体中显示主键字段。 但它们在 Northwind 2.0 入门版中与超链接功能一起使用。
订单详细信息
frmOrderDetails) (订单详细信息窗体是 Access 主窗体/子窗体设计。 在窗体的主要部分添加新订单或更新现有订单。 在“订单行项目”子窗体 (sfrmOrderDetails) 中添加或更新这些订单中包含的产品。
可以使用主窗体和子窗体来管理一对多关系。 订单详细信息窗体显示如何处理订单与订单中包含的一个或多个产品之间的一对多关系。 主窗体 (frmOrderDetails) 显示在单一视图中,并绑定到订单表。 sfrmOrderDetails) (子窗体处于连续视图中,并绑定到订单详细信息表。
主/子链接字段
主窗体和子窗体为您处理一对多关系的详细信息。 子窗体控件是子窗体的容器,具有主链接字段和子链接字段属性。
Access 会自动尝试从这些字段的单侧表中选择主键,并从多侧表中选择相应的外键。 但是,如果您有更高级的要求,则可以替代该选择。
除了将“订单明细”表中的记录与“订单明细”表中的订单同步外,每次向订单明细添加新产品时,Access 还会自动提供“订单”中的正确主键作为外键。
在 frmOrderDetails) (订单窗体上,还会看到标题为“最近订单 (sfrmOrders_MostRecent) ”的第二个子窗体,该子窗体显示最近订单的只读列表。 此列表也以连续视图显示最近的订单。 在输入订单之前,您可以检查订单是否可能是同一客户最近下达的另一个订单的副本。
请注意,您可以编辑新订单和订单详细信息,但无法编辑最近订单列表,因为它仅供参考。 另请注意,最近订单的主链接和子链接字段为空,因为当前订单与任何其他最近订单之间没有直接关系。
一对多关系通常可以在组合框或列表框中处理。 例如,多个客户不会一起执行订单。 订单表中只需要一条信息,即 CustomerID。 用户从列出所有现有客户的组合框中选择相应客户的外键。
订单明细表单也有自己的与处理订单相关的操作菜单。 它是水平显示的。 标签上的题注组合了一个操作和目标:
- 添加顺序
- 删除订单
- 创建发票
- 发货单
- 接收付款
- 关闭订单
它们执行嵌入的宏,执行一些基本的错误检查,然后执行适当的操作。
员工列表和员工详细信息
frmEmployeeDetail) (员工列表在大多数方面与 frmOrderDetails) (订单列表相似。 例如,它有一个用于选择单个员工的超链接,并且它也是只读的。
界面设计选择和业务规则
通常,特定设计反映了应用程序的业务规则。 例如,frmMainMenu) (主菜单有一个操作标签“ 添加订单”,但没有针对员工、产品或客户的操作标签。 这是因为增加新员工、产品或客户的频率远低于增加新订单的频率。 因此,通过在列表或详细信息表单上放置其他添加标签来减少菜单上的项目数量是有意义的。 否则,此表单遵循与订单表类似的方法。
产品列表和产品详细信息
“ 添加产品 ”标签位于产品的列表窗体上,因为 Northwind 的产品目录比员工更不稳定,但更新频率不如新订单。
“导出到文件”标签打开内置的 Access 向导,以创建产品列表并将其导出到 Word 格式、Excel 格式、PDF 格式等选项的外部文件。
与以前的列表一样,超链接将打开产品详细信息窗体 (frmProductDetail) 以编辑单个产品。 它还说明了一个唯一的产品代码,而不是主键,这是一个更人性化的值。
产品详细信息弹出窗体上的另一项功能是 “转到产品 ”组合框。 此组合框是使用访问控制向导创建的,可在功能区上访问,它将删除当前筛选器并将产品重新筛选为组合框中选择的产品。
客户列表和客户详细信息
尽管开发人员不太经常使用拆分窗体,但为了在 Northwind 2.0 入门版中进行说明,客户列表是一个拆分窗体。 有关详细信息,请参阅 创建分割窗体。
拆分窗体有两个部分,一个视图部分显示当前所选记录,一个数据表部分显示记录列表。 由于分割窗体在子窗体控件中不起作用,因此必须将其加载为新窗口才能显示该功能。 将该行为与在子窗体控件中加载的其他列表窗体进行比较。
拆分器栏位于“ID/客户名称”标题行的正上方。 将其向下拉,查看完整的拆分器形式。
此表单 (frmCustomerList) 还演示了更多 Access 功能。 显示 /隐藏字段 标签允许您更改显示的字段。 “ 创建标签” 标签将打开一个 Access 向导,引导你为向客户邮寄邮件创建地址标签。
管理员设置
大多数 Access 应用程序需要全局设置才能正常工作。 有些由开发者决定,但有些需要不时供用户访问。 frmAdmin) (管理员窗体说明了用户直接或间接控制的一些设置:
- 所有订单的 TaxRate 均相同,但可在此处进行更改。
- AutoLogin 和 PromptForPersonalLogin 决定了首次启动 Northwind 2.0 Starter Edition 时或首次使用后返回时的用户体验。 可以使用这些来重置新用户的初始体验。
- LastResetDate 是上次使用重置日期时保存日期的位置。 它的唯一目的是在左侧导航中将该日期显示为一点“养眼”。
在管理菜单上,你将找到一个表单 (sfrmAdmin_InternetOrders) ,通过该表单可以创建模拟通过网站收到的订单的 Internet 订单。 它还通过限制每次创建的订单数来说明验证