重要
对 Microsoft InfoPath 2013 的支持已于 2026 年 7 月 14 日结束。 建议将现有的 InfoPath 表单和工作流迁移到受支持的 Microsoft 365 解决方案。 了解有关 InfoPath 停用的详细信息。
可以使用查询数据连接到 Microsoft SQL Server 数据库的数据填充列表框、下拉列表框或组合框。
本文内容
概述
列表框、下拉列表框或组合框显示用户在填写基于表单模板的表单时可以选择的项目。 可以配置这些类型的控件以显示与 Microsoft SQL Server 数据库的辅助数据连接中的数据。 辅助数据连接是指与添加到表单模板的外部数据源的任何数据连接,以便基于此表单模板填写表单的用户可以从外部数据源(例如 Web 服务)获取数据或将数据提交到外部数据源。
将查询数据的辅助数据连接添加到表单模板时,Microsoft Office InfoPath 将创建一个辅助数据源,其中包含与数据库中数据存储方式相对应的数据字段和组。 查询数据连接从 Web 服务获取数据,并将该数据存储在窗体的辅助数据源中。 默认情况下,辅助数据源中的数据仅在用户连接到网络时可用。 可以配置辅助数据连接以将查询结果保存在用户的计算机上,以便他们在其窗体未连接到网络时可以访问数据。
注意
如果使用辅助数据连接从外部数据源检索敏感数据,则可能需要禁用此功能,以帮助在计算机丢失或被盗时防止未经授权使用数据。 如果禁用此功能,则仅当用户连接到网络时,数据才可用。
由于辅助数据源中的数据结构必须与数据在数据库中的存储方式匹配,因此无法修改辅助数据源中的现有字段或组。 在“ 另请参阅 ”部分中查找有关数据连接和数据源的更多信息的链接。
开始之前
在使用 SQL Server 数据库中的值填充表单模板上的控件之前,需要数据库管理员提供以下信息:
- 将用于此表单模板的数据库的服务器的名称。
- 将用于此表单模板的数据库的名称。
- 数据库所需的身份验证。 数据库可以使用 Microsoft Windows 身份验证或 SQL Server 身份验证来确定用户如何访问数据库。
- 包含要发送到窗体的数据的表的名称。 这是主表。 如果您计划在数据库中使用多个表,则需要其他子表的名称。 还需要子表中与主表中的字段有关系的字段的名称。
- 是否可以将查询结果安全地存储在用户的计算机上以供脱机使用。
步骤 1:添加查询数据连接
如果没有可在表单模板上使用的现有查询数据连接,请按照以下步骤将辅助数据连接添加到查询数据的表单模板。 如果表单模板已有可以使用的辅助数据连接,可以跳过此部分并转到 步骤 2:配置控件。
在 “工具 ”菜单上,单击 “数据连接”。
在 “数据连接 ”对话框中,单击 “添加”。
在数据连接向导中,单击“ 创建新的连接”,单击 “接收数据”,然后单击 “下一步”。
在该向导的下一页上,单击数据库 (Microsoft SQL Server或仅Microsoft Office Access) ,然后单击“下一步”。
在向导的下一页上,单击 “选择数据库”。
在 “选择数据源” 对话框中,单击 “新建源”。
在向导的下一页的“您要连接到哪种类型的数据源”列表中,单击“Microsoft SQL Server”,然后单击“下一步”。
在“服务器名称”框中,键入包含 SQL Server 数据库的服务器的名称。
在 “登录凭据”下,执行下列操作之一:
- 如果数据库基于 Microsoft Windows 网络中使用的凭据确定谁具有访问权限,请单击“ 使用 Windows 身份验证”。
- 如果数据库根据从数据库管理员处获得的指定用户名和密码来确定谁具有访问权限,请单击“ 使用以下用户名和密码”,然后在 “用户名 和 密码 ”框中键入您的用户名和密码。
单击“下一步”。
在 “选择包含所需数据的数据库 ”列表中,单击要使用的数据库的名称,单击“ 连接到特定表”,单击主表的名称,然后单击 “下一步”。
在向导的下一页的“ 文件名 ”框中,键入存储数据连接信息的文件的名称,然后单击“ 完成” 保存这些设置。
如果您计划在查询数据连接中使用其他表,则可以在向导的此页面中添加其他表。
添加其他表- 单击 “添加表”。
- 在 “添加表或查询” 对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 要添加关系,请单击 “添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击 “确定”。
- 单击“完成”。
- 要添加其他子表,请重复这些步骤。
单击“下一步”。
若要使用窗体模板存储查询结果,请选中 在窗体模板中存储数据副本 检查框。 选中此检查框会将查询结果存储在窗体模板中。 因为数据存储在表单模板中。 即使用户的计算机未连接到网络,数据也可在用户填写的表单中获得。
注意
选中此检查框会将查询结果存储在窗体模板中。 由于数据存储在表单模板中,因此即使用户的计算机未连接到网络,也可以在用户填写的表单中使用。 如果从此数据连接获取敏感数据,则可能需要禁用此功能,以便在计算机丢失或被盗时帮助保护数据。
单击“下一步”。
在向导的下一页上,键入此辅助数据连接的描述性名称。 如果希望窗体在窗体打开时自动接收数据,请选中“窗体打开时自动检索数据”检查框。
步骤 2:配置控件
如果表单模板有多个视图,请单击“视图”菜单上的“视图名称”,转到具有要显示辅助数据源中数据的控件的视图。
双击要填充的列表框、下拉列表框或组合框控件。
单击“数据”选项卡。
在 “列表框项”下,单击 “从外部数据源查找值”。
在 “数据源 ”列表中,单击要使用的数据源。
单击“条目”框旁边的“选择 XPath
”。在 “选择字段或组” 对话框中,通过执行下列操作之一,指定将向用户显示哪些数据以及将哪些数据提交到外部数据源。
指定用户将看到的数据与用户将提交的数据相同- 单击一个字段,然后单击 “确定”。
指定用户将看到的数据与用户将提交的数据不同
注意
在此方案中,用户将看到的数据来自组中的某个字段,而用户将提交的数据位于同一组中的另一个字段中。
- 单击一个组,然后单击 “确定”。
- 在“控件属性”对话框中,单击“值”框旁边的“选择 XPath
”。 - 在 “选择字段或组” 对话框中,单击包含用户将提交到外部数据源的数据的字段,然后单击“ 确定”。
- 在“控件属性”对话框中,单击“显示名称”框旁边的“选择 XPath
”。 - 在 “选择字段或组” 对话框中,单击控件中将显示的数据所在的字段,然后单击“ 确定”。
如果“显示名称”框中的字段具有具有相似显示名称的值,并且您想仅显示唯一名称,请选中仅显示具有唯一显示名称的条目检查框。