设计基于 Microsoft Access 数据库的表单模板
应用对象
可以设计一个Microsoft Office InfoPath 表单模板,该模板与 Microsoft Office Access 数据库配合使用,以便查询数据或查询和提交数据。 您可以基于Microsoft Office Access 2007 (.accdb 格式) 数据库或以早期版本保存的 Access 数据库 (.mdb 格式) 设计此表单模板。
本文内容
概述
窗体可以有一个主数据连接(称为主数据连接),该连接可以选择具有一个或多个辅助数据连接。 可以使用主数据连接来查询表单数据或将表单数据提交到 Access 数据库。 还可以使用辅助数据连接来查询数据并将其提交到外部数据源,但有一些例外。 例如,可以使用 Access 数据库的辅助数据连接,以便它仅查询数据库。 不能将辅助数据连接添加到将表单数据目录提交到 Access 数据库的窗体。
设计基于 Access 数据库的表单模板时,InfoPath 会创建一个包含查询字段和数据字段的组的主数据源,还会创建查询数据连接作为表单模板的主数据连接。 这些字段和组对应于数据库中表中数据的存储方式。
查询字段包含用户在表单中输入的数据,以便将查询结果限制为与查询字段中的数据匹配的记录。 当基于此表单模板的表单使用主数据连接时,InfoPath 将使用查询字段中的数据创建查询。 然后,InfoPath 通过数据连接发送查询。 数据库通过数据连接将查询结果返回到表单。 查询结果将放入数据字段,这些数据字段可通过绑定到这些数据字段的窗体上的控件进行编辑。
由于查询和数据字段的数据结构必须与数据库中数据的存储方式匹配,因此不能在主数据源中修改这些字段或组。 只能向主数据源中的根组添加字段或组。 在 “另请参阅 ”部分中查找有关数据源的详细信息的链接。
如果表单所基于的表单模板且数据库满足以下要求,则表单可以通过表单的主数据连接将数据提交到数据库:
- 表单模板不是与浏览器兼容的表单模板 如果要设计与浏览器兼容的表单模板,InfoPath 将不会在主数据连接中创建提交数据连接。 若要允许用户在基于浏览器兼容表单模板的表单中提交数据,请使用与数据库一起使用的 Web 服务。
- 主数据源中每对相关表的左表包含一个主键 每对相关表的至少一个关系必须包含左表中的主键。
- 表单的主数据源中没有一个数据字段存储大型二进制数据类型 如果查询包含可存储大型二进制数据类型的字段(例如图片、图像、OLE 对象、文件附件、Office Access 备注数据类型或 SQL 文本数据类型),InfoPath 将禁用提交数据连接。
当 InfoPath 启用提交数据连接时,用户可以将存储在主数据源中的数据字段中的数据提交到数据库。 您可以自定义基于此表单模板的表单的提交选项。
兼容性注意事项
不能基于 Access 数据库设计与浏览器兼容的表单模板。
开始之前
在成功设计基于 Access 数据库的表单模板之前,需要有关 Access 数据库的以下信息:
数据库的名称和位置。
注意
确保数据库位于用户可访问的网络位置。
如果表单模板允许用户将表单提交到数据库,则接收已提交数据的表的名称。 配置提交数据连接时,将使用此表作为主表。
如果表单模板将仅查询数据库,则提供发送到数据库的查询结果的表的名称。 配置查询数据连接时,将使用此表作为主表。
主表可能需要从中获取数据的任何其他表的名称。 在大多数情况下,表关系已在数据库中建立。 如果需要手动建立主表与另一个表之间的关系,则需要这两个表的相关字段名称。
设计表单模板
若要设计具有查询数据连接的表单模板,首先需要创建表单模板。 创建基于数据库的表单模板时,InfoPath 会创建查询数据连接,作为表单模板与数据库之间的主数据连接。 此过程会自动创建表单模板的主数据源。
创建表单模板后,需要向表单模板添加控件,然后将该控件绑定到主数据源中的字段。 这使你的用户可以在窗体中查看查询的结果。
步骤 1:创建表单模板
在“ 文件 ”菜单上,单击“ 设计表单模板”。
在“ 设计表单模板 ”对话框中的“ 设计新”下,单击“ 表单模板”。
在“ 基于 ”列表中,单击“ 数据库”,然后单击“ 确定”。
数据连接向导启动在数据连接向导的第一页上,单击“ 选择数据库”。
在 “选择数据源 ”对话框中,浏览到数据库的位置。
注意
如果数据库存储在网络位置中,请浏览到该位置的通用命名约定 (UNC) 路径。 不要通过映射的网络驱动器浏览到网络位置。 如果使用映射网络驱动器,则基于此表单模板创建表单的用户将从映射的网络驱动器中搜索数据库。 如果用户没有映射的网络驱动器,则窗体将找不到数据库。
单击数据库的名称,然后单击“ 打开”。
在 “选择表 ”对话框中,单击要使用的主表或查询,然后单击“ 确定”。
在向导的下一页上,选择“检查显示表列”框。
默认情况下,表中的所有字段都将添加到表单模板的主数据源。 清除不希望包含在主数据源中的字段的检查框。
添加要在查询数据连接中使用的任何其他表或查询。
如何?- 单击“ 添加表”。
- 在“ 添加表或查询 ”对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 若要添加关系,请单击“ 添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击“ 确定”。
- 单击“完成”。
- 若要添加其他子表,请重复这些步骤。
单击“下一步”。
在向导的最后一页上,键入主数据连接的名称。 此名称将显示在 “数据源” 任务窗格的“ 数据源” 列表中。
如果表单模板满足 “概述 ”部分中的要求,则向导此页上的 “摘要 ”部分指示 InfoPath 在主数据连接中启用了提交数据连接。
若要更改提交数据连接的名称,请在相应的框中键入新名称。
若要使用户能够通过稍后将添加到表单模板的另一个提交数据连接提交其表单数据,请清除“启用此连接的提交检查”框。
注意
如果表单模板不符合“概述”部分中的要求,InfoPath 将禁用提交数据连接,并且“输入提交连接的名称”框和“启用此连接提交检查”框不可用。 如果 InfoPath 禁用提交数据连接,则表单模板的主数据连接将仅包含查询数据连接。
步骤 2:将控件绑定到字段
- 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。
- 将控件拖到表单模板上。
- 在“ 控件绑定 ”对话框中,选择要将控件绑定到的字段。
配置提交选项
如果在数据连接向导中选择的表单模板和表满足 “概述 ”部分中的要求,InfoPath 会将表单模板配置为使用其主数据连接提交数据。
如果选择使用此提交数据连接,InfoPath 将配置表单模板,以便用户可以将其表单数据提交到数据库,并将“提交”按钮添加到Standard工具栏,并将“提交”命令添加到表单上的“文件”菜单。 InfoPath 还会配置表单模板,以便在用户提交其表单时,表单保持打开状态,并显示一条消息,指示表单是否已成功提交。 可以更改“ 提交 ”按钮上显示的文本,也可以在用户提交表单后更改窗体的行为。
在 “工具 ”菜单上,单击“ 提交选项”。
若要更改Standard工具栏上显示的“提交”按钮的名称,以及当用户填写表单时显示在“文件”菜单上的“提交”命令的名称,请在“提交选项”对话框的“标题”框中键入新名称。
提示
如果要为此按钮和命令分配键盘快捷方式,请在要用作键盘快捷方式的字符之前键入和号 (&) 。 例如,若要将 Alt+B 指定为 “提交 ”按钮和命令的键盘快捷方式,请键入 Su&bmit。
如果不希望用户在填写表单时使用“提交”命令或Standard工具栏上的“提交”按钮,请清除“显示提交菜单项和检查提交工具栏按钮”框。
默认情况下,用户提交表单后,InfoPath 将保持窗体打开状态,并显示一条消息,指示表单是否已成功提交。 若要更改此默认行为,请单击“ 高级”,然后执行下列操作之一:
若要在用户提交已完成的表单后关闭窗体或创建新的空白表单,请在“ 提交后 ”列表中单击所需的选项。
若要创建自定义邮件以指示表单是否已成功提交,请选中“使用自定义邮件检查”框,然后在“成功时”和“失败时”框中键入邮件。
提示
使用“ 失败 ”框中的消息告诉用户,如果无法提交表单,该怎么办。 例如,可以建议用户保存其表单并联系某人以获取进一步的说明。
如果不希望在用户提交表单后显示消息,请清除“检查显示成功和失败消息”框。