基于Microsoft SQL Server数据库设计表单模板

应用对象
InfoPath 2010 InfoPath 2013

可以设计一个表单模板,该模板可与 Microsoft SQL Server 数据库一起使用来查询数据或查询和提交数据。

本文内容

概述

窗体可以有一个主数据连接(称为主数据连接),并且可以有选择地具有一个或多个辅助数据连接。 根据表单的目标,数据连接可能会查询表单数据或将其提交到外部数据源,例如Microsoft SQL Server数据库或 Web 服务。

设计基于数据库的表单模板时,Microsoft Office InfoPath 会创建一个主数据源,其中包含查询字段和数据字段的组,以及查询数据连接作为表单模板的主要数据连接。 这些字段和组对应于数据库中表中数据的存储方式。 查询字段包含用户输入的数据,以便将查询结果限制为与查询字段中的数据匹配的记录。 当基于此表单模板的表单使用主数据连接时,InfoPath 将使用查询字段中的数据创建查询。 然后,InfoPath 通过查询数据连接发送查询。 数据库通过查询数据连接将查询结果返回到窗体。 查询的结果将放入数据字段,这些数据字段可通过绑定到这些字段的控件进行编辑。

由于查询和数据字段的数据结构必须与数据库中数据的存储方式匹配,因此不能在主数据源中修改这些字段或组。 只能向主数据源中的根组添加字段或组。 在 “另请参阅 ”部分中查找有关数据源的详细信息的链接。

如果表单所基于的表单模板且数据库满足以下要求,则表单可以通过表单的主数据连接将数据提交到数据库:

  • 表单模板不是与浏览器兼容的表单模板 如果要设计与浏览器兼容的表单模板,InfoPath 将不会在主数据连接中创建提交数据连接。 若要允许用户在基于浏览器兼容表单模板的表单中提交数据,请使用与数据库一起使用的 Web 服务。
  • 主数据源中每对相关表的左表包含一个主键 每对相关表的至少一个关系必须包含左表中的主键。
  • 表单的主数据源中没有一个数据字段存储大型二进制数据类型 如果查询包含可存储大型二进制数据类型的字段(例如图片、图像、OLE 对象、文件附件、Office Access 备注数据类型或 SQL 文本数据类型),InfoPath 将禁用提交数据连接。

当 InfoPath 启用提交数据连接时,用户可以将主数据源中的数据字段中的数据提交到数据库。 如果 InfoPath 启用提交数据连接,则可以自定义基于此表单模板的表单的提交选项。

返回页首

兼容性注意事项

设计基于数据库的表单模板时,可以选择设计与浏览器兼容的表单模板。 InfoPath 将在浏览器兼容的表单模板中创建查询数据连接作为主数据连接。 但是,无法将浏览器兼容的表单模板配置为允许用户将数据提交到数据库。 因此,如果要基于SQL Server数据库设计表单模板,并且希望用户通过主数据连接将其表单数据提交到数据库,则无法使该表单模板与浏览器兼容。

返回页首

开始之前

若要基于SQL Server数据库设计表单模板,需要数据库管理员提供的以下信息:

  • 包含要将表单模板连接到的数据库的服务器的名称。
  • 将用于此表单模板的数据库的名称。
  • 数据库所需的身份验证。 数据库可以使用Microsoft Windows 身份验证或SQL Server身份验证来确定用户如何访问数据库。
  • 包含要发送到窗体的数据或将从窗体接收数据的数据的表的名称。 这是主表。 如果要在数据库中使用多个表,则需要这些其他子表的名称。 还需要子表中与主表中的字段有关系的字段的名称。

返回页首

设计表单模板

若要设计具有查询数据连接的表单模板,需要执行以下操作:

  1. 创建表单模板 创建基于数据库的表单模板时,InfoPath 会创建查询数据连接,作为表单模板与数据库之间的主数据连接。 此过程会自动创建表单模板的主数据源。
  2. 添加一个或多个控件以显示查询结果 若要允许用户在打开窗体时查看和编辑主数据源的字段中的数据,可以将控件添加到表单模板,然后将该控件绑定到主数据源中的字段。

步骤 1:创建表单模板

  1. 在“ 文件 ”菜单上,单击“ 设计表单模板”。

  2. “设计新”下的“ 设计表单模板 ”对话框中,单击“ 表单模板”。

  3. 在“ 基于 ”列表中,单击“ 数据库”。

  4. 如果要设计与浏览器兼容的表单模板,请选择“仅检查启用与浏览器兼容的功能”框。

    注意

    数据连接向导不会在浏览器兼容的表单模板中启用提交数据连接。 若要允许用户将其数据从基于浏览器兼容表单模板的表单提交到数据库,请将辅助数据连接添加到使用数据库的 Web 服务。 在“ 另请参阅 ”部分中查找有关辅助数据连接的详细信息的链接。

  5. 单击“确定”。

  6. 在“数据连接向导”中,单击“ 选择数据库”。

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

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

  9. 在“服务器名称”框中,键入具有 SQL Server 数据库的服务器的名称。

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

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

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

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

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

  15. 在向导的最后一页上,键入主数据连接的名称。 此名称将显示在 “数据源 ”任务窗格的 “数据源” 列表中。

  16. 如果表单模板满足 “概述 ”部分中的要求,则向导的此页将指示 InfoPath 在主数据连接中启用了提交数据连接。 若要更改提交数据连接的名称,请在相应的框中键入新名称。 如果希望用户通过稍后将添加到表单模板的另一个提交数据连接提交其表单数据,请单击以清除“启用此连接的提交检查框。

    注意

    如果表单模板不符合“概述”部分中的要求,InfoPath 将禁用提交数据连接,并且“输入提交连接的名称”框和“启用此连接检查提交”框不可用 (禁用) 。 如果 InfoPath 禁用提交数据连接,则表单模板的主数据连接将只有查询数据连接。

步骤 2:添加一个或多个控件以显示查询结果

  1. 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。
  2. 将控件拖到表单模板上。
  3. 在“ 控件绑定 ”对话框中,选择要将控件绑定到的组或字段。

返回页首

配置提交选项

如果在数据连接向导中选择的表单模板和表符合 “概述 ”部分中的要求,InfoPath 会将表单模板配置为通过其主数据连接提交数据。 如果选择使用此提交数据连接,InfoPath 将配置表单模板,以便用户可以将其表单数据提交到数据库,并在用户填写表单时将“提交”按钮和“提交”命令添加到 Standard“文件”菜单。 InfoPath 还会配置表单模板,以便在用户提交其表单时,表单保持打开状态,并向用户显示一条消息,指示表单是否已成功提交。 可以在用户提交表单后更改“ 提交 ”按钮上的文本和行为。

  1. “工具 ”菜单上,单击“ 提交选项”。

    1. 若要更改Standard工具栏上显示的“提交”按钮的名称,以及当用户填写表单时显示在“文件”菜单上的“提交”命令的名称,请在“提交选项”对话框的“标题”框中键入新名称。

      提示

      如果要为此按钮和命令分配键盘快捷方式,请在要用作键盘快捷方式的字符之前键入和号 (&) 。 例如,若要将 Alt+B 指定为 “提交 ”按钮和命令的键盘快捷方式,请键入 Su&bmit

  2. 如果不希望用户在填写表单时使用提交”命令或Standard工具栏上的“提交”按钮,请清除“显示提交菜单项和检查提交工具栏按钮”框。

    1. 默认情况下,用户提交表单后,InfoPath 将保持窗体打开状态,并显示一条消息,指示表单是否已成功提交。 若要更改此默认行为,请单击“ 高级”,然后执行下列操作之一:

      • 若要在用户提交已完成的表单后关闭窗体或创建新的空白表单,请在“ 提交后 ”列表中单击所需的选项。

      • 若要创建自定义邮件以指示表单是否已成功提交,请选中“使用自定义邮件检查”框,然后在“成功时”和“失败时”框中键入邮件。

        提示

        使用“ 失败 ”框中的消息告诉用户,如果无法提交表单,该怎么办。 例如,可以建议用户保存其表单并联系某人以获取进一步的说明。

      • 如果不希望在用户提交表单后显示消息,请清除“检查显示成功和失败消息”框。

返回页首