应用对象
Access 2013

如果你有一个较长的多项目窗体,有时需要快速“向下钻取”以查看有关单个项的详细信息。 可以通过将多项目窗体链接到单项窗体,在 Access 中执行此作。 单击多项目窗体中的项时,将打开单项窗体以显示详细信息。

单击多项目窗体上的 ID 以打开单项目窗体。

注意: 

  • 本文不适用于 Access Web 应用-使用 Access 设计并联机发布的数据库类型。

  • 如果“链接”意味着其他内容,请参阅本文末尾 的其他类型的表单链接

创建窗体

在大多数情况下,向下钻取配置中的两个窗体基于同一表或查询。 如果已有一对想要使用的窗体, (一个窗体是数据表或多个项窗体,另一个是单项窗体或“详细信息”窗体) ,则可以跳过此部分。 否则,请使用以下过程创建它们:

创建数据表或多项目窗体:

  1. 在导航窗格中,选择包含所需数据表窗体上的数据的表或查询。

  2. 单击“创建 > 更多Forms”,然后单击“多个项”或“数据表”,具体取决于所需的类型。

  3. 进行所需的任何设计更改。 请考虑删除尽可能多的列,留出足够的信息来标识每个项。

  4. 保存并关闭窗体。

有关多个项窗体的详细信息,请参阅 使用多项目工具创建窗体

创建单项或“详细信息”窗体:

  1. 在导航窗格中,选择包含详细信息窗体上所需数据的表或查询。 这很可能是用于第一个窗体的表或查询。

  2. 单击“ 创建 > 窗体”。

  3. 进行所需的任何设计更改,然后保存并关闭窗体。

有关详细信息,请参阅 使用窗体工具创建窗体

添加用于打开详细信息窗体的逻辑

现在,向多项目或数据表窗体添加一个小宏。 宏将打开详细信息窗体,并确保显示正确的项。

如果尚未完成大量宏工作,请不要担心;只需复制并粘贴在此过程中找到的 XML 即可。

  1. 如果使用数据表窗体,请在导航窗格中双击它以将其打开。 对于多项目窗体,在导航窗格中右键单击它,然后单击“ 布局视图”。

  2. 按 F4 打开属性表(如果尚未打开)。

  3. 单击要将宏添加到的列。 这是在宏完成时单击以打开详细信息窗体的列。 在上图中,宏已添加到 frmContactList 的 ID 列中。

提示:  可以将宏添加到多个列。

  1. 在“属性表”的“ 事件 ”选项卡上,单击“ 单击” 或“ 在 Dbl 上单击 ”属性框 (,具体取决于是希望通过单击还是双击字段) 打开窗体,然后单击“ 生成 ”按钮 按钮图像

  2. 如果 Access 提示你选择生成器,请选择“ 宏生成器 ”,然后单击“ 确定”。

  3. 选择此 XML 块,然后按 Ctrl+C 将其复制到剪贴板: <?xml version="1.0" encoding="UTF-16" standalone="no"?> <UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"> <UserInterfaceMacro For="ID" Event="OnClick"><Statements><Action Name="OnError"><Argument Name="Goto">Macro Name</Argument><Argument Name="MacroName">ErrorHandler</Argument></Action> <ConditionalBlock><If><Condition>[Form].[Dirty]</Condition><Statements><Action Name="SaveRecord"/></Statements></If></ConditionalBlock> <ConditionalBlock><If><Condition>IsNull([ID])</Condition><Statements><Comment>Open the form to a new record if the current ID is Null</Comment><Action Name="OpenForm"><Argument Name="FormName">frmContactDetails</Argument><Argument Name="DataMode">Add</Argument><Argument Name="WindowMode">Dialog</Argument></Action><Action Name="Requery"/></Statements></If><Else><Statements><Comment>Use a TempVar to pass a filter to the OpenForm action</Comment><Action Name="SetTempVar"><Argument Name="Name">Contact_ID</Argument><Argument Name="Expression">[ID]</Argument></Action><Action Name="OpenForm"><Argument Name="FormName">frmContactDetails</Argument><Argument Name="WhereCondition">[ID]=[TempVars]![Contact_ID]</Argument><Argument Name="DataMode">Edit</Argument><Argument Name="WindowMode">Dialog</Argument></Action><Action Name="RemoveTempVar"><Argument Name="Name">Contact_ID</Argument></Action><Action Name="RefreshRecord"/></Statements></Else></ConditionalBlock> </Statements></UserInterfaceMacro></UserInterfaceMacros>

  4. 单击宏生成器 (“ 添加新作” 下拉列表) 下方的空白区域,然后按 Ctrl+V 粘贴宏作。 如果一切顺利,则不会在宏生成器中看到 XML ,它将扩展为更易读的宏块,如下一步所示。

  5. 如有必要,请将表单名称 (frmContactDetails) 和链接列名称 (ID) 替换为表单的名称和用于链接这两个窗体的列的名称。 下图显示了可能需要进行编辑以匹配自己的标识符名称的位置: 将其置于可能需要编辑样本宏的位置,以匹配数据库的标识符名称。

  6. 在“ 设计 ”选项卡上,单击“ 保存 ”,然后单击 “关闭”。

  7. 如果希望可单击的列 () 显示为超链接,以便用户知道他们可以单击它,请确保仍选中该列,然后在“属性表”中单击“ 格式 ”选项卡,并将 “显示为超链接” 属性设置为 “始终”。

  8. 保存并关闭窗体,然后重新打开窗体,并通过单击或双击修改的列来测试宏。

有关桌面数据库中的宏的详细信息,请参阅 将逻辑添加到桌面数据库中的控件

其他类型的表单链接

若要创建窗体/子窗体组合并将其链接在一起,请参阅 创建包含子窗体的窗体 (一对多窗体)

若要创建链接到数据源(如表或查询)的窗体,请参阅 使用窗体工具创建窗体

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。