使用SQL Server数据库中的值填充列表框、下拉列表框或组合框

应用对象
InfoPath 2010 InfoPath 2013

可以使用查询数据连接到Microsoft SQL Server数据库的数据填充列表框、下拉列表框或组合框。

本文内容

概述

列表框、下拉列表框或组合框显示用户在填写基于表单模板的表单时可以选择的项目。 可以将这些类型的控件配置为显示从辅助数据连接到Microsoft SQL Server数据库的数据。 辅助数据连接是添加到表单模板的外部数据源的任何数据连接,以便基于此表单模板填写表单的用户可以从外部数据源(如 Web 服务)获取数据或将数据提交到外部数据源。

将查询数据的辅助数据连接添加到表单模板时,Microsoft Office InfoPath 会创建一个辅助数据源,其中包含与数据库中存储数据的方式相对应的数据字段和组。 查询数据连接从 Web 服务获取数据,并将该数据存储在表单的辅助数据源中。 默认情况下,仅当用户连接到网络时,辅助数据源中的数据才可用。 可以将辅助数据连接配置为将查询结果保存在用户的计算机上,以便在表单未连接到网络时,他们有权访问数据。

注意

如果使用辅助数据连接从外部数据源检索敏感数据,则可能需要禁用此功能,以帮助防止在计算机丢失或被盗的情况下未经授权使用数据。 如果禁用此功能,则仅当用户连接到网络时,数据才可用。

由于辅助数据源中的数据结构必须与数据库中数据的存储方式匹配,因此不能修改辅助数据源中的现有字段或组。 在 “另请参阅 ”部分中查找有关数据连接和数据源的详细信息的链接。

返回页首

开始之前

在可以使用SQL Server数据库中的值在表单模板上填充控件之前,需要数据库管理员提供的以下信息:

  • 将用于此表单模板的数据库的服务器的名称。
  • 将用于此表单模板的数据库的名称。
  • 数据库所需的身份验证。 数据库可以使用Microsoft Windows 身份验证或SQL Server身份验证来确定用户如何访问数据库。
  • 包含要发送到窗体的数据的表的名称。 这是主表。 如果计划在数据库中使用多个表,则需要其他子表的名称。 还需要子表中与主表中的字段具有关系的字段的名称。
  • 是否可以安全地将查询结果存储在用户的计算机上以供脱机使用。

返回页首

步骤 1:添加查询数据连接

如果没有可用于表单模板的现有查询数据连接,请按照以下步骤将辅助数据连接添加到查询数据的表单模板。 如果表单模板已有可使用的辅助数据连接,则可以跳过此部分,转到 步骤 2:配置控件

  1. “工具 ”菜单上,单击“ 数据连接”。

  2. 在“ 数据连接 ”对话框中,单击“ 添加”。

  3. 在“数据连接向导”中,单击“ 创建新连接”,单击“ 接收数据”,然后单击“ 下一步”。

  4. 在向导的下一页上,单击“数据库 (Microsoft SQL Server或仅Microsoft Office Access) ”,然后单击“下一步”。

  5. 在向导的下一页上,单击“ 选择数据库”。

  6. “选择数据源 ”对话框中,单击“ 新建源”。

  7. 在向导的下一页上,在“要连接到哪种类型的数据源”列表中,单击“Microsoft SQL Server然后单击”下一步”。

  8. 在“服务器名称”框中,键入包含 SQL Server 数据库的服务器的名称。

  9. “登录凭据”下,执行以下操作之一:

    • 如果数据库根据Microsoft Windows 网络中使用的凭据确定谁有权访问,请单击“ 使用 Windows 身份验证”。
    • 如果数据库根据从数据库管理员那里获取的指定用户名和密码确定谁有权访问,请单击“使用以下用户名和密码”,然后在“用户名和密码”框中键入用户名和密码。
  10. 单击“下一步”。

  11. “选择包含所需数据的数据库 ”列表中,单击要使用的数据库的名称,单击“ 连接到特定表”,单击主表的名称,然后单击“ 下一步”。

  12. 在向导的下一页上,在“ 文件名 ”框中,键入存储数据连接信息的文件的名称,然后单击“ 完成 ”保存这些设置。
    如果计划在查询数据连接中使用其他表,可以在向导的此页中添加其他表。
    添加其他表

    1. 单击“ 添加表”。
    2. 在“ 添加表或查询 ”对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 若要添加关系,请单击“ 添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击“ 确定”。
    3. 单击“完成”
    4. 若要添加其他子表,请重复这些步骤。
  13. 单击“下一步”。

  14. 若要使用表单模板存储查询结果,请选择“在表单模板检查存储数据的副本”框。 选中此检查框会将查询结果存储在表单模板中。 数据存储在表单模板中。 数据在用户填写的表单中可用,即使其计算机未连接到网络。

    注意

    选中此检查框会将查询结果存储在表单模板中。 由于数据存储在表单模板中,因此,即使其计算机未连接到网络,也可在用户填写的表单中使用该数据。 如果要从此数据连接获取敏感数据,则可能需要禁用此功能,以帮助在计算机丢失或被盗时保护数据。

  15. 单击“下一步”。

  16. 在向导的下一页上,键入此辅助数据连接的描述性名称。 如果希望窗体在打开窗体时自动接收数据,请选择“打开窗体时自动检索数据”框检查。

返回页首

步骤 2:配置控件

  1. 如果表单模板具有多个视图,请单击“视图”菜单上的视图名称”,转到包含要显示辅助数据源数据的控件的视图。

  2. 双击要填充的列表框、下拉列表框或组合框控件。

  3. 单击“数据”选项卡。

  4. “列表框条目”下,单击“ 从外部数据源查找值”。

  5. “数据源 ”列表中,单击要使用的数据源。

  6. 单击“条目”框旁边的“选择 XPath038c9c35-ca90-4bf1-a2e2-2342022bdbc1”。

  7. “选择字段或组 ”对话框中,通过执行以下操作之一指定向用户显示哪些数据以及哪些数据将提交到外部数据源。
    指定用户将看到的数据与用户提交的数据相同

    • 单击字段,然后单击“ 确定”。

    指定用户将看到的数据与用户将提交的数据不同

    注意

    在此方案中,用户将看到的数据来自组中的一个字段,用户将提交的数据位于同一组中的另一个字段中。

    1. 单击组,然后单击“ 确定”。
    2. 在“控件属性”对话框中,单击“”框旁边的“选择 XPath038c9c35-ca90-4bf1-a2e2-2342022bdbc1”。
    3. “选择字段或组 ”对话框中,单击包含用户将提交给外部数据源的数据的字段,然后单击“ 确定”。
    4. 在“控件属性”对话框中,单击“显示名称”框旁边的“选择 XPath038c9c35-ca90-4bf1-a2e2-2342022bdbc1”。
    5. “选择字段或组 ”对话框中,单击包含将在控件中显示的数据的字段,然后单击“ 确定”。
  8. 如果“显示名称”框中的字段具有类似显示名称的值,并且希望仅显示唯一名称,请选择“仅显示具有唯一显示名称的条目检查框。

返回页首