重要
对 Microsoft InfoPath 2013 的支持已于 2026 年 7 月 14 日结束。 建议将现有的 InfoPath 表单和工作流迁移到受支持的 Microsoft 365 解决方案。 了解有关 InfoPath 停用的详细信息。
可以设计一个表单模板,该模板可与 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 身份验证来确定用户如何访问数据库。
- 包含要发送到窗体或将从窗体接收数据的数据的表的名称。 这是主表。 如果您要在数据库中使用多个表,则需要这些其他子表的名称。 还需要子表中与主表中的字段有关系的字段的名称。
设计表单模板
若要设计具有查询数据连接的表单模板,需要执行以下操作:
- 创建表单模板 创建基于数据库的表单模板时,InfoPath 将创建查询数据连接作为表单模板和数据库之间的主数据连接。 此过程会自动创建表单模板的主要数据源。
- 添加一个或多个控件以显示查询结果 若要允许用户在打开窗体时查看和编辑主数据源中字段中的数据,可以将控件添加到窗体模板,然后将该控件绑定到主数据源中的字段。
第 1 步:创建表单模板
在 “文件 ”菜单上,单击“ 设计表单模板”。
在“ 设计新项目”下的“ 设计表单模板 ”对话框中,单击 “表单模板”。
在“ 基于” 列表中,单击 “数据库”。
如果要设计与浏览器兼容的窗体模板,请选中 仅启用浏览器兼容功能 检查框。
注意
数据连接向导不会在浏览器兼容的表单模板中启用提交数据连接。 若要允许用户从基于浏览器兼容的表单模板将其数据提交到数据库,请添加与该数据库配合使用的 Web 服务的辅助数据连接。 在“ 另请参阅 ”部分查找有关辅助数据连接的更多信息的链接。
单击“确定”。
在数据连接向导中,单击 “选择数据库”。
在 “选择数据源” 对话框中,单击 “新建源”。
在“您要连接到哪种类型的数据源”列表中,单击“Microsoft SQL Server”,然后单击“下一步”。
在“服务器名称”框中,键入具有 SQL Server 数据库的服务器的名称。
在 “登录凭据”下,执行下列操作之一:
- 如果数据库基于 Microsoft Windows 网络中使用的凭据确定谁具有访问权限,请单击“ 使用 Windows 身份验证”。
- 如果数据库根据从数据库管理员处获得的指定用户名和密码来确定谁具有访问权限,请单击“ 使用以下用户名和密码”,然后在 “用户名 和 密码 ”框中键入您的用户名和密码。
单击“下一步”。
在“选择包含所需数据的数据库”列表中,单击要使用的数据库的名称,选中“连接到特定表”检查框,单击主表的名称,然后单击“下一步”。
在向导的下一页的“ 文件名 ”框中键入存储数据连接信息的文件的名称,然后单击“ 完成 ”保存这些设置。
如果您计划在查询数据连接中使用其他表,则可以在向导的此页面中添加其他表。
如何实现?- 单击 “添加表”。
- 在 “添加表或查询” 对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 要添加关系,请单击 “添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击 “确定”。
- 单击“完成”。
- 要添加其他子表,请重复这些步骤。
单击“下一步”。
在向导的最后一页上,键入主数据连接的名称。 此名称将显示在“数据源”任务窗格的数据源列表中。
如果表单模板满足“ 概述 ”部分中的要求,向导的此页面将指示 InfoPath 已在主数据连接中启用提交数据连接。 要更改提交数据连接的名称,请在相应框中键入新名称。 如果您希望用户通过稍后将添加到表单模板的另一个提交数据连接提交其表单数据,请单击以清除“启用此连接提交”检查框。
注意
如果你的表单模板不满足“概述”部分中的要求,InfoPath 将禁用提交数据连接,并且“输入提交连接的名称”框和“启用提交此连接检查框不可用 (禁用) 。 如果 InfoPath 禁用了提交数据连接,则表单模板的主数据连接将仅具有查询数据连接。
步骤 2:添加一个或多个控件以显示查询结果
- 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。
- 将控件拖动到表单模板上。
- 在“ 控件绑定 ”对话框中,选择要将控件绑定到的组或字段。
配置提交选项
如果表单模板和在数据连接向导中选择的表满足“ 概述 ”部分中的要求,则 InfoPath 会将表单模板配置为通过其主数据连接提交数据。 如果选择使用此提交数据连接,InfoPath 会配置表单模板,以便用户可以将其表单数据提交到数据库,并在用户填写表单时将提交按钮添加到 Standard 工具栏,并将提交命令添加到“文件”菜单。 InfoPath 还配置了表单模板,以便在用户提交其表单时,表单保持打开状态,并向用户显示一条消息,说明表单是否已成功提交。 您可以更改 “提交 ”按钮上的文本以及用户提交表单后的行为。
在 “工具 ”菜单上,单击 “提交选项”。
若要更改用户填写表单时显示在 Standard 工具栏上的“提交”按钮和“文件”菜单上显示的“提交”命令的名称,请在“提交选项”对话框的“标题”框中键入新名称。
提示
如果要为此按钮和命令分配键盘快捷方式,请在要用作键盘快捷方式的字符前面键入一个与号 (&) 。 例如,若要将 ALT+B 指定为“ 提交 ”按钮和命令的键盘快捷方式,请键入 Su&bmit。
如果您不希望人们在填写表单时使用 Submit 命令或 Standard 工具栏上的 Submit 按钮,请清除显示 Submit 菜单项和 Submit 工具栏按钮检查框。
默认情况下,用户提交表单后,InfoPath 将使表单保持打开状态,并显示一条消息以说明表单是否已成功提交。 若要更改此默认行为,请单击“ 高级”,然后执行下列操作之一:
若要在用户提交已完成的表单后关闭窗体或创建新的空白窗体,请在“ 提交后” 列表中单击所需的选项。
若要创建自定义消息以指示窗体是否已成功提交,请选中“使用自定义消息”检查框,然后在“成功时”和“失败时”框中键入消息。
提示
在 失败时 框中使用消息告诉用户如果无法提交表单该怎么做。 例如,您可以建议用户保存其表单并联系某人以获取进一步说明。
如果不想在用户提交表单后显示消息,请清除“显示成功和失败消息”检查框。