重要
对 Microsoft InfoPath 2013 的支持已于 2026 年 7 月 14 日结束。 建议将现有的 InfoPath 表单和工作流迁移到受支持的 Microsoft 365 解决方案。 了解有关 InfoPath 停用的详细信息。
在 InfoPath 窗体中,可以使用与 Microsoft Office Access 2007 (.accdb 格式数据库或以早期版本 (.mdb 格式保存的 Access 数据库的查询数据连接) 列表框、下拉列表框或组合框填充) 。
本文内容
概述
列表框、下拉列表框或组合框显示用户可以在填写 InfoPath 表单时选择的项目。 设计表单模板时,可以配置这些类型的控件,以显示来自到 Access 数据库的辅助数据连接的数据。
辅助数据连接是您添加到表单模板的与外部数据源的任何数据连接。 可以配置辅助数据连接,以检索用户填写基于表单模板的表单或将窗体数据提交到外部数据源(如 Web 服务)所需的数据。
当您将将数据查询到表单模板的辅助数据连接时,InfoPath 将创建一个辅助数据源,其中包含与数据库中数据存储方式相对应的数据字段和组。 查询数据连接从 Web 服务检索数据,然后将该数据存储在窗体的辅助数据源中。
可以配置辅助数据连接以将查询结果保存在用户的计算机上,这样即使这些用户的计算机未连接到网络,也可以访问这些数据。 根据数据的性质,您可能希望仅在用户连接到网络时才显示查询结果。
注意
如果使用辅助数据连接从外部数据源检索敏感数据,则可能需要禁用此功能,以帮助在计算机丢失或被盗时防止未经授权使用数据。 如果禁用此功能,则仅当用户连接到网络时,数据才可用。
如果要限制列表框控件中的项目数,可以使用筛选器。 每当需要显示查询返回的数据的子集(基于用户选择的条件)时,请使用筛选器。 该条件可以在其他控件 (中选择的项目,例如列表框、组合框、下拉列表框或绑定到数据源中字段的文本框) 。
由于辅助数据源中的数据结构必须与数据在数据库中的存储方式匹配,因此无法修改辅助数据源中的现有字段或组。 在本文的“ 另请参阅 ”部分中查找有关数据连接和数据源详细信息的链接。
兼容性注意事项
只有当您设计的表单模板不是与浏览器兼容的表单模板时,才能将查询数据连接添加到 Access 数据库。
开始之前
在使用 Access 数据库中的值填充窗体模板上的控件之前,需要数据库管理员提供以下信息:
数据库的名称和位置。
注意
如果网络上的其他用户将基于此表单模板创建表单,请确保这些用户可以访问你的数据库。
提供控件值的表或查询的名称。 配置查询数据连接时,将使用此表或查询作为主表。
主表或查询可能需要从中获取数据的任何其他表或查询的名称。 在大多数情况下,表关系已经在数据库中建立。 如果您需要手动建立主表或查询与另一个表或查询之间的关系,您将需要两个表或查询的相关字段名称。
步骤 1:添加查询数据连接
如果没有可在表单模板中使用的现有查询数据连接,请使用以下过程将查询数据的辅助数据连接添加到表单模板。 如果表单模板已有可以使用的辅助数据连接,可以跳过此部分并转到 步骤 2:配置控件。
在 “工具 ”菜单上,单击 “数据连接”。
在 “数据连接 ”对话框中,单击 “添加”。
在数据连接向导中,单击“ 创建新的连接”,单击 “接收数据”,然后单击 “下一步”。
在该向导的下一页上,单击数据库 (Microsoft SQL Server或仅Microsoft Office Access) ,然后单击“下一步”。
在向导的下一页上,单击 “选择数据库”。
在 “选择数据源” 对话框中,浏览到数据库的位置。
注意
如果数据库存储在网络位置中,请浏览到通用命名约定 (UNC) 位置的路径。 不要通过映射网络驱动器浏览到网络位置。 如果使用映射网络驱动器 (,也就是说,为网络驱动器分配一个字母(如 H: 或 Z:) ),则用户基于此表单模板创建的表单将在该特定的映射网络驱动器上搜索数据库。 如果用户没有以完全相同的方式映射网络驱动器,则窗体将找不到数据库。
单击数据库的名称,然后单击“ 打开”。
在 “选择表” 对话框中,单击要使用的主表或查询,然后单击“ 确定”。
在向导的下一页上,选中“显示表列”检查框。
默认情况下,表或查询中的所有字段都会添加到表单模板的主要数据源中。清除不想包含在主数据源中的字段的检查框。
添加要包含在查询数据连接中的任何其他表或查询。
如何实现?- 单击 “添加表”。
- 在 “添加表或查询” 对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 要添加关系,请单击 “添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击 “确定”。
- 单击“完成”。
- 要添加其他子表,请重复这些步骤。
单击“下一步”。
若要在窗体未连接到网络时使查询数据连接的结果可用,请选中“在窗体模板中存储数据副本”检查框。
注意
选中此检查框会在窗体使用此数据连接时将数据存储在用户的计算机上。 如果表单正在从此数据连接检索敏感数据,则可能需要禁用此功能,以便在计算机丢失、被盗或被未经授权的用户以其他方式访问时帮助保护数据。
单击“下一步”。
在向导的下一页上,键入此辅助数据连接的描述性名称,然后验证 摘要 部分中的信息是否正确。
若要将窗体配置为在打开时自动接收数据,请选中“窗体打开时自动检索数据”检查框。
步骤 2:配置控件
如果表单模板有多个视图,请单击“视图”菜单上的“视图名称”,转到具有要显示辅助数据源中数据的控件的视图。
双击要配置的表单模板上的列表框、下拉列表框或组合框控件。
单击“数据”选项卡。
在 “列表框项”下,单击 “从外部数据源查找值”。
在 “数据源 ”列表中,单击要使用的数据源。
单击 Entries(条目)框旁边的 Select XPath(选择 XPath
)。在 “选择字段或组” 对话框中,通过执行下列操作之一指定字段或组,其字段或组的字段包含将向用户显示的数据以及将提交给外部数据源的数据。
指定用户将看到的数据与用户将提交的数据相同- 单击一个字段,然后单击 “确定”。
指定用户将看到的数据与用户将提交的数据不同
注意
在此方案中,用户将看到的数据来自组中的某个字段,而用户将提交的数据包含在同一组中的另一个字段中。
- 单击一个组,然后单击 “确定”。
- 在“控件属性”对话框中,单击“值”框旁边的“选择 XPath
”。 - 在 “选择字段或组” 对话框中,单击包含用户将提交到外部数据源的数据的字段,然后单击“ 确定”。
- 在“控件属性”对话框中,单击“显示名称”框旁边的“选择 XPath
”。 - 在 “选择字段或组” 对话框中,单击控件中将显示的数据所在的字段,然后单击“ 确定”。
如果“显示名称”框中的字段具有具有相似显示名称的值,并且您想仅显示唯一名称,请选中仅显示具有唯一显示名称的条目检查框。
可选:设置筛选器以限制控件中的项
双击要配置的表单模板上的列表框、下拉列表框或组合框控件。
单击“数据”选项卡。
单击“条目”框旁边的“选择 XPath
”。在 “选择字段或组” 对话框中,单击包含为控件提供值的字段的字段或组,然后单击 “筛选数据”。
在 “筛选数据 ”对话框中,单击 “添加”。
注意
如果要向现有筛选器添加条件,请单击要应用的筛选器,然后单击“ 修改”。
在“ 指定筛选条件 ”对话框的第一个框中,单击要筛选其数据的字段的名称。
在第二个框中,单击要使用的筛选器类型。
在第三个框中,单击要应用于筛选器的条件类型,然后键入条件。
要为筛选器配置多个条件,请单击 “和”,然后执行下列操作之一:
- 要将现有条件和新条件应用于过滤器,请单击 和,然后添加新条件。
- 要将现有条件或新条件应用于过滤器,请单击 或,然后添加其他条件。
单击“ 确定 ”关闭对话框。
要测试所做的更改,请单击“常用”工具栏上的“预览”,或者按 Ctrl+Shift+B。
表单模板将在新窗口中打开。在预览窗口中,选择筛选器控件中的各种值,以测试筛选器是否正常工作。
筛选器未正常工作
如果控件中包含筛选器的值不正确,可能是因为值过多或不够,请尝试下列操作:- 如果在筛选器中使用多个条件,请删除除一个条件之外的所有条件,以便检查该单个条件是否返回了正确的值。 如果第一个条件返回正确的值,则添加另一个条件并对其进行测试。
- 筛选器区分大小写字符。 如果要显示以大写或小写字符开头的数据,请使用大写字母条件创建筛选器,在“指定筛选条件”对话框中选择 OR,然后创建小写字母条件。
- 如果筛选的值与预期完全相反,例如显示来自所有供应商的产品,而不是来自单个供应商的产品,请更改条件中的筛选器类型。 例如,如果您的条件使用 过滤器类型等 于,并且您获得的产品过多,请尝试使用过滤器类型不 等于。