Office中国论坛/Access中国论坛

标题: InfoPath 教程 使用指南将InfoPath表单连接到Access数据库 [打印本页]

作者: ghosty    时间: 2008-9-25 10:51
标题: InfoPath 教程 使用指南将InfoPath表单连接到Access数据库
适用于
Microsoft Office InfoPath™ 2003 Service Pack 1
Microsoft Office Access 2003

简介
  通过使用 Microsoft Office InfoPath,您可以设计连接到 Microsoft Office Access 数据库的表单。通过同时使用这两个程序,您可以充分感受到 InfoPath 的数据集合优势以及 Access 的数据存储优势。
  InfoPath 的优点包括:用户可以在脱机时填写表单,拥有大量易于设计和填写的控件以及在表单连接到数据库时可自动导入的数据验证 (数据验证:测试数据准确性的过程;可应用到控件以指定用户可输入的数据类型和范围的一组规则。)规则。
[attach]32279[/attach]

将 InfoPath 表单连接到 Access 数据库时,您可以选择是否将数据库设置为表单的主数据源 (数据源:为 InfoPath 表单定义和存储数据的域和组的集合。表单中的控件绑定到数据源中的域和组。)或辅助数据源。如果希望能够通过在 InfoPath 表单中填写字段来编辑记录并向数据库中添加记录,您应该将数据库设置为表单的主数据源。
本文说明了如何将用于表单的数据库设置为主数据源,方法如下:
安装程序要求要完成本文中的课程,您的计算机上必须装有 Access 2003 和用于 Access 的罗斯文示例数据库。默认情况下,示例数据库将安装在您计算机的以下位置:C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\。 注释  如果在计算机上找不到罗斯文示例数据库,您可能需要安装该数据库。要进行安装,请启动 Access,指向“帮助”菜单上的“示例数据库,然后单击“罗斯文示例数据库

第 1 课:创建表单本课讲述如何创建新的 InfoPath 表单,以及如何使用“数据连接向导”将表单连接到 Access 中的罗斯文示例数据库。完成本课后,您的表单将被连接到罗斯文示例数据库中的两个表上,然后您就能够添加、编辑并查询那些表中的记录了。
要将 Access 数据库用作 InfoPath 表单的主数据源,必须以一个新表单开始。您无法修改现有的表单以向主数据源中添加连接。请按照以下步骤创建基于 Access 中示例数据库的新 InfoPath 表单:
通过先选择“供应商”表,您将“供应商”表设置为数据连接 (数据连接:InfoPath 表单和外部源之间的连接,例如,数据库、Web 服务、SharePoint 库或 XML 文件都是外部源。数据连接用于查询和提交数据。)的主表。现在您必须将“产品”表添加到数据连接中。与此同时,这些表将创建一个一对多的关系,这意味着每位供应商可提供多种产品。在 Access 中,通过使用将一个表中的记录与另一个表中的记录相关联的键字段定义此关系。
在此一对多的关系中,“一”端的表中包含一个主键字段,唯一指定了表中的每个记录。“多”端的表中包含一个外键字段,该字段与其他表的主键相匹配。主键字段和外键字段常常使用同一名称。在这种情况下,“供应商”表中包含主键字段“供应商 ID”,“产品”表中包含外键字段“供应商 ID”。
将表单连接到数据库中的多个表上时,InfoPath 要求使用键字段将这些表连接起来。此外,数据连接中的主表必须有一个与您添加的任何其他表相对应的一对多连接或一对一连接。
向您的表单添加主表后,您就可以添加其他表了:
默认情况下,InfoPath 将连接到表中的所有字段。但是,您可能希望排除某个字段,因为该字段使用了 InfoPath 无法连接到的数据类型 (数据类型:域的属性,定义该域可存储的数据种类。数据类型包括文本、格式文本、整数、小数、真/假、超链接、日期和时间以及图片等。),或者您不想使表中某一特定字段的值起作用。在本课中,您必须排除主页字段,因为它是一种 InfoPath 不支持的“超链接”数据类型。“超链接”数据类型与“备注”数据类型相似,也是一种长数据类型。因此,InfoPath 无法连接到“超链接”数据类型。
在完成“数据连接向导”之前,必需命名数据连接并验证所创建的连接是否正确建立:
最后生成的表单应包含查询数据的“视图” (视图:表单特定的显示设置,可通过表单模板来保存,并可在填写表单时应用到表单数据中。用户可在视图之间进行切换,以便选择表单中显示的数据量。)按钮、输入新记录的按钮以及两个可向其插入控件的表。
[attach]32280[/attach]
在您继续下一课之前,应保存表单:


[ 本帖最后由 ghosty 于 2008-9-25 11:23 编辑 ]
作者: ghosty    时间: 2008-9-25 11:24
第 2 课:

查看 InfoPath 数据源在 InfoPath 表单与 Access 数据库之间创建主数据连接时,InfoPath 将基于 Access 数据库的结构创建数据结构。具体地讲,InfoPath 将创建与数据库中的字段和表相匹配的字段和组。例如,InfoPath 将在数据源中创建一个与 Access 中的“产品”表相对应的“产品”组。对于“产品”表中的每个字段,InfoPath 数据源中都有一个与之对应的字段。
注释  由于 InfoPath 先存储数据,然后再将数据提交给 Access,因此您可以将信息输入表单中—  即使处于脱机状态,也可以—  在您准备好后,将该信息提交到数据库
对于主数据连接,InfoPath 实际上创建了两个非常相似的数据结构:一组查询字段和一组数据字段。您可以使用查询字段将值输入到表单中,然后查询数据库。同时,您可以使用数据字段向数据库中输入新的记录并修改数据库中现有的记录。每组字段都与数据库中的表和字段相匹配。
要想更好地了解 InfoPath 数据结构是如何关联到 Access 数据结构的,最好查看一下表单中的数据字段。

最后生成的数据结构应像这样:
[attach]32281[/attach]

请该注意数据结构与 Access 数据库中的两个表的相似程度。
[attach]32282[/attach]
“供应商”组包含“产品”组。
“供应商”表与“产品”表形成一对多关系。

对于 Access 数据库中的每个表,InfoPath 表单中都有一个与之对应的组。对于 Access 表中的每个字段,InfoPath 组中都有一个与之对应的字段。此外,组和字段之间与字段和表之间都有一个与之对应的组—  这是因为每个供应商都可能有多种产品。
作者: ghosty    时间: 2008-9-25 11:27
第 3 课:设计表单版面   基于 Access 示例数据库创建了表单并且熟悉了 InfoPath 数据源后,现在您可以开始设计表单版面了。要创建用户可向其中输入信息的控件,您可以从“数据源”任务窗格中将字段和组拖到表单上。将一个字段拖到表单时,InfoPath 将创建一个控件,如一个文本框;将一组字段拖到表单上时,InfoPath 将创建一组控件,如一个包含一组文本框的节。
添加到表单中的控件的类型和特性取决于字段的类型,而字段的类型取决于 Access 数据库中的特定字段。例如,数据类型是“日期”的 Access 字段会生成数据类型是“日期”的 InfoPath 字段。如果您将该类型的字段拖到表单上,在默认情况下,InfoPath 将创建一个日期选取器。

  当您创建基于数据库的表单时,InfoPath 将创建具有两个版式表的单一视图。在第一个表中,可以添加查询字段,它能够使您的用户查询用于记录的数据库。在第二个表中,可以添加数据条目字段,它能够使您的用户修改现有记录并向数据库中添加新的记录。
  处理查询字段之前,必须向表单添加 dataFields 的完整组,它会在您的表单中实现一组完整的控件。然后可以删除任何不必要的控件。有些控件是不需要的,因为这些控件包含了多余的信息,或者包含的信息不适用于您所使用的两个表。例如,“类别 ID”文本框就是不需要的,因为它用于与“类型”表建立关系,而在本数据连接中不使用此功能。
注释  删除控件并不会删除数据源中的基础字段。例如,当您删除类别 ID 文本框时,类别 ID 字段仍然存在于数据源中并且可能包含数据。
  InfoPath 通过使用重复节 (重复节:表单上包含其他控件且可根据需要进行重复的控件。填写表单时,用户可插入多个节。)启用多个记录。在此表单中,用户可输入多个供应商以及每个供应商的多个产品。表单中的控件反映了此项功能—  产品控件位于一个重复节中,后者包含在“供应商”重复节中,如以下示例所示。
[attach]32283[/attach]
为了便于用户使用这些重复节,请按照以下步骤添加边框和底纹并插入描述性标题:
表单数据输入部分的版式表格现在看起来类似于下面这样。
[attach]32284[/attach]

通过在表单中输入数据向 Access 数据库提交新的记录时,Access 将自动创建“供应商 ID”。正因如此,您的用户才不必编辑或键入新的供应商 ID,这表明您可以将“供应商 ID”文本框的属性设置为只读,以防止用户试图修改该值。要将“供应商 ID”文本框属性设置为只读,请按照以下说明操作:
作者: ghosty    时间: 2008-9-25 11:28
您已完成表单数据输入部分的版面设计。您现在可以处理查询部分了,用户可在其中输入值以向数据库查询现有记录。

第 4 课:处理按钮和查询字段创建用于查询数据的控件之前,让我们来看一下添加到表单中的两个按钮:“新建记录”“运行查询”按钮。本课将解释这些按钮的作用并用演示如何对其进行修改。
“运行查询”按钮基于前一个控件中的值查询数据库。然后数据库返回与那些值匹配的任何记录。例如,如果您在“公司名称”框中输入 Tokyo Traders ,然后单击“运行查询”按钮,则会返回有关 Tokyo Traders 供应商的记录,以及 Tokyo Traders 提供的所有产品。返回的记录显示在表单的数据输入部分,在其中可进行编辑并随后将更改后的内容提交到数据库
“新建记录”按钮清除表单数据输入部分中的值,允许您输入新的供应商及其产品。
为帮助您的用户更好地理解表单的查询和数据输入部分的区别,您可以向表单中添加标题和文本:
接下来,您可以向表单的查询部分添加标题和控件:
继续之前,让我们删除对您的用户来说多余的控件。这里,我们假设用户仅基于供应商的 ID、公司名称和国家/地区来查询值。
现在,您的用户可以查询“供应商”表中的值、修改返回的记录、添加新记录并将结果提交回数据库
第 5 课:自定义提交选项用户填写表单时,可以修改现有的记录并添加新的记录。要用所做的修改更新数据库,必须将完成后的表单提交到数据库。默认情况下,InfoPath 的“提交”命令在“文件”菜单和“常用”工具栏中都可用,以便用户可以轻松提交完成后的表单。除了这些选项,直接在表单中提供可使用户提交数据的按钮也很有用。本课讲述了如何为表单设置标准的“提交”按钮和自定义其他提交选项。
您已经将“提交”按钮添加到了表单中,现在可以设置表单,使表单在提交后关闭并打开一个新的空白表单。另外,您可以编写自己的消息,指定是否成功提交了表单:
第 6 课:查询、编辑和添加记录您已经完成了表单的创建并将其连接到了 Access 数据库,现在应该对表单进行测试以确保可供用户正常使用。在本课中,您将扮演用户的角色,通过查询数据库、修改现有记录以及添加新记录来测试表单。
首先,您应该尝试打开一个新的表单并添加新记录:
应该出现一个说明供应商和产品信息已被成功更新的对话框;单击“确定”后,该表单应关闭,并打开一个新的表单。
您已经验证了用户可以使用您的表单向数据库中添加新记录,现在可以尝试修改其中一个记录:
Chardonnay 记录将从数据库中被删除,而 Merlot 记录将在数据库中被更新。这时应该出现一个对话框,指出供应商和产品信息已成功更新。当您单击“确定”时,该表单应关闭并打开一个新表单。
总结将这些步骤应用于您自己的数据库时,请记住以下关键问题:





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3