zoukankan      html  css  js  c++  java
  • OFFICE InfoPath 教程

    2006/2/24
    InfoPath 教程 使用指南将InfoPath表单连接到Access数据库
    适用于
    Microsoft Office InfoPath™ 2003 Service Pack 1
    Microsoft Office Access 2003

    简介

    通过使用 Microsoft Office InfoPath,您可以设计连接到 Microsoft Office Access 数据库的表单。通过同时使用这两个程序,您可以充分感受到 InfoPath 的数据集合优势以及 Access 的数据存储优势。

    InfoPath 的优点包括:用户可以在脱机时填写表单,拥有大量易于设计和填写的控件以及在表单连接到数据库时可自动导入的数据验证 (数据验证:测试数据准确性的过程;可应用到控件以指定用户可输入的数据类型和范围的一组规则。)规则。

    连接到 Access 数据库的 InfoPath 表单

    将 InfoPath 表单连接到 Access 数据库时,您可以选择是否将数据库设置为表单的主数据源 (数据源:为 InfoPath 表单定义和存储数据的域和组的集合。表单中的控件绑定到数据源中的域和组。)或辅助数据源。如果希望能够通过在 InfoPath 表单中填写字段来编辑记录并向数据库中添加记录,您应该将数据库设置为表单的主数据源。

    本文说明了如何将用于表单的数据库设置为主数据源,方法如下:

    • 将表单连接到数据库
    • 设计表单版面
    • 自定义表单的提交选项
    • 填写表单的同时进行数据查询和提交。

    安装程序要求

    要完成本文中的课程,您的计算机上必须装有 Access 2003 和用于 Access 的罗斯文示例数据库。默认情况下,示例数据库将安装在您计算机的以下位置:C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\。

    注释  如果在计算机上找不到罗斯文示例数据库,您可能需要安装该数据库。要进行安装,请启动 Access,指向“帮助”菜单上的“示例数据库,然后单击“罗斯文示例数据库

    第 1 课:创建表单

    本课讲述如何创建新的 InfoPath 表单,以及如何使用“数据连接向导”将表单连接到 Access 中的罗斯文示例数据库。完成本课后,您的表单将被连接到罗斯文示例数据库中的两个表上,然后您就能够添加、编辑并查询那些表中的记录了。

    要将 Access 数据库用作 InfoPath 表单的主数据源,必须以一个新表单开始。您无法修改现有的表单以向主数据源中添加连接。请按照以下步骤创建基于 Access 中示例数据库的新 InfoPath 表单:

    1. “文件”菜单上,单击“设计表单”
    2. “设计表单”任务窗格中,单击“根据数据连接新建”
    3. 在“数据连接向导”的第一页上,单击数据库(仅 Microsoft SQL Server 或 Microsoft Office Access)”,然后单击“下一步”
    4. 在下一向导页上,单击“选择数据库
    5. “选择数据源”对话框中,浏览到计算机上的罗斯文示例数据库,然后双击数据库

      数据库的默认位置为:<驱动器>:\Program Files\Microsoft Office\OFFICE11\SAMPLES。

    6. “选择表”对话框的“名称”下,单击“供应商”表,然后单击“确定”

    通过先选择“供应商”表,您将“供应商”表设置为数据连接 (数据连接:InfoPath 表单和外部源之间的连接,例如,数据库、Web 服务、SharePoint 库或 XML 文件都是外部源。数据连接用于查询和提交数据。)的主表。现在您必须将“产品”表添加到数据连接中。与此同时,这些表将创建一个一对多的关系,这意味着每位供应商可提供多种产品。在 Access 中,通过使用将一个表中的记录与另一个表中的记录相关联的键字段定义此关系。

    在此一对多的关系中,“一”端的表中包含一个主键字段,唯一指定了表中的每个记录。“多”端的表中包含一个外键字段,该字段与其他表的主键相匹配。主键字段和外键字段常常使用同一名称。在这种情况下,“供应商”表中包含主键字段“供应商 ID”,“产品”表中包含外键字段“供应商 ID”。

    将表单连接到数据库中的多个表上时,InfoPath 要求使用键字段将这些表连接起来。此外,数据连接中的主表必须有一个与您添加的任何其他表相对应的一对多连接或一对一连接。

    向您的表单添加主表后,您就可以添加其他表了:

    1. 在“数据连接向导”中,单击“添加表”
    2. “添加表或查询”对话框的“表”下,单击“产品”,然后单击“下一步”
    3. “编辑关系”对话框中,确保“连接域”下的两列均被设置为“供应商 ID”,然后单击“完成”

      注释  InfoPath 假定各表中带匹配名称的字段都是键字段。如果您设置的数据连接不属于这种情况,则需要指定键字段。

    默认情况下,InfoPath 将连接到表中的所有字段。但是,您可能希望排除某个字段,因为该字段使用了 InfoPath 无法连接到的数据类型 (数据类型:域的属性,定义该域可存储的数据种类。数据类型包括文本、格式文本、整数、小数、真/假、超链接、日期和时间以及图片等。),或者您不想使表中某一特定字段的值起作用。在本课中,您必须排除主页字段,因为它是一种 InfoPath 不支持的“超链接”数据类型。“超链接”数据类型与“备注”数据类型相似,也是一种长数据类型。因此,InfoPath 无法连接到“超链接”数据类型。

    1. 在“数据连接向导”中,选择“显示表列”复选框。
    2. 清除“主页”复选框。

    在完成“数据连接向导”之前,必需命名数据连接并验证所创建的连接是否正确建立:

    1. 在“数据连接向导”中,单击“下一步”
    2. 在向导的下一页上,将数据连接的名称键入“输入该数据连接的名称”框,然后阅读“摘要”框中的信息。该框应指定连接类型(检索数据并将其提交到数据库)、数据库的位置、主表的名称(供应商)、表的数量 (2)以及该表单提交已启用。
    3. 在您验证“摘要”框中的信息完全正确后,单击“完成”

    最后生成的表单应包含查询数据的“视图” (视图:表单特定的显示设置,可通过表单模板来保存,并可在填写表单时应用到表单数据中。用户可在视图之间进行切换,以便选择表单中显示的数据量。)按钮、输入新记录的按钮以及两个可向其插入控件的表。

    InfoPath 查看

    在您继续下一课之前,应保存表单:

    1. “文件”菜单中,单击“另存为”
    2. 如果系统提示您保存或发布文件,单击“保存”
    3. “另存为”对话框中,浏览到要在其中保存表单的位置。
    4. “文件名”框中,键入 供应商和产品

    第 2 课:查看 InfoPath 数据源

    在 InfoPath 表单与 Access 数据库之间创建主数据连接时,InfoPath 将基于 Access 数据库的结构创建数据结构。具体地讲,InfoPath 将创建与数据库中的字段和表相匹配的字段和组。例如,InfoPath 将在数据源中创建一个与 Access 中的“产品”表相对应的“产品”组。对于“产品”表中的每个字段,InfoPath 数据源中都有一个与之对应的字段。

    注释  由于 InfoPath 先存储数据,然后再将数据提交给 Access,因此您可以将信息输入表单中—  即使处于脱机状态,也可以—  在您准备好后,将该信息提交到数据库

    对于主数据连接,InfoPath 实际上创建了两个非常相似的数据结构:一组查询字段和一组数据字段。您可以使用查询字段将值输入到表单中,然后查询数据库。同时,您可以使用数据字段向数据库中输入新的记录并修改数据库中现有的记录。每组字段都与数据库中的表和字段相匹配。

    要想更好地了解 InfoPath 数据结构是如何关联到 Access 数据结构的,最好查看一下表单中的数据字段。

    1. 要查看数据字段,在“数据源”任务窗格中,展开“dataFields”组。
    2. 展开“d:供应商”组,然后展开“产品”组。

    最后生成的数据结构应像这样:

    表单的数据结构

    请该注意数据结构与 Access 数据库中的两个表的相似程度。

    表的数据结构和数据库的数据结构

    标注 1 “供应商”组包含“产品”组。

    标注 2 “供应商”表与“产品”表形成一对多关系。

    对于 Access 数据库中的每个表,InfoPath 表单中都有一个与之对应的组。对于 Access 表中的每个字段,InfoPath 组中都有一个与之对应的字段。此外,组和字段之间与字段和表之间都有一个与之对应的组—  这是因为每个供应商都可能有多种产品。

    第 3 课:设计表单版面

    基于 Access 示例数据库创建了表单并且熟悉了 InfoPath 数据源后,现在您可以开始设计表单版面了。要创建用户可向其中输入信息的控件,您可以从“数据源”任务窗格中将字段和组拖到表单上。将一个字段拖到表单时,InfoPath 将创建一个控件,如一个文本框;将一组字段拖到表单上时,InfoPath 将创建一组控件,如一个包含一组文本框的节。

    隐藏提示

    添加到表单中的控件的类型和特性取决于字段的类型,而字段的类型取决于 Access 数据库中的特定字段。例如,数据类型是“日期”的 Access 字段会生成数据类型是“日期”的 InfoPath 字段。如果您将该类型的字段拖到表单上,在默认情况下,InfoPath 将创建一个日期选取器。

    当您创建基于数据库的表单时,InfoPath 将创建具有两个版式表的单一视图。在第一个表中,可以添加查询字段,它能够使您的用户查询用于记录的数据库。在第二个表中,可以添加数据条目字段,它能够使您的用户修改现有记录并向数据库中添加新的记录。

    处理查询字段之前,必须向表单添加 dataFields 的完整组,它会在您的表单中实现一组完整的控件。然后可以删除任何不必要的控件。有些控件是不需要的,因为这些控件包含了多余的信息,或者包含的信息不适用于您所使用的两个表。例如,“类别 ID”文本框就是不需要的,因为它用于与“类型”表建立关系,而在本数据连接中不使用此功能。

    注释  删除控件并不会删除数据源中的基础字段。例如,当您删除类别 ID 文本框时,类别 ID 字段仍然存在于数据源中并且可能包含数据。

    1. 在表单中,将插入点放在包含文本“将数据字段拖动到此处”版式表格中。
    2. “数据源”任务窗格中,右键单击“dataFields”组,然后在快捷菜单上单击“带有控件的节”。这样就为您用以修改和添加记录的所有字段插入了控件。
    3. 在表单中,选择“供应商 ID”文本框和“类别 ID”文本框的第二个实例(包括它们的标签),然后按 Delete。

    InfoPath 通过使用重复节 (重复节:表单上包含其他控件且可根据需要进行重复的控件。填写表单时,用户可插入多个节。)启用多个记录。在此表单中,用户可输入多个供应商以及每个供应商的多个产品。表单中的控件反映了此项功能—  产品控件位于一个重复节中,后者包含在“供应商”重复节中,如以下示例所示。

    产品节嵌套在供应商节中

    为了便于用户使用这些重复节,请按照以下步骤添加边框和底纹并插入描述性标题:

    1. 右键单击表单上出现的第二个“重复节”标签,然后单击快捷菜单上的“边框和底纹”
    2. “边框和底纹”对话框中的“边框”选项卡上,单击“彩色”框中的一种颜色。
    3. “宽度”框中,单击“3 pt”
    4. “预设”下,单击“大纲”,然后单击“确定”
    5. 右键单击表单上出现的第一个“重复节”标签,然后单击快捷菜单上的“边框和底纹”
    6. “边框和底纹”对话框中,单击“底纹”选项卡,然后单击“颜色”框中的一种颜色。
    7. 单击“确定”
    8. 在表单中“供应商”重复节的前面键入 数据输入
    9. 在“供应商”重复节中,将插入点放在“供应商 ID”标签前面,然后按 Enter。
    10. 键入 供应商
    11. 在“产品”重复节中,将插入点放在“产品 ID”标签前面,然后按 Enter。
    12. 键入 产品
    13. 将刚才键入的所有文本设成粗体。

    表单数据输入部分的版式表格现在看起来类似于下面这样。

    数据输入的版式表格

    通过在表单中输入数据向 Access 数据库提交新的记录时,Access 将自动创建“供应商 ID”。正因如此,您的用户才不必编辑或键入新的供应商 ID,这表明您可以将“供应商 ID”文本框的属性设置为只读,以防止用户试图修改该值。要将“供应商 ID”文本框属性设置为只读,请按照以下说明操作:

    1. 双击“供应商 ID”文本框。
    2. “文本框属性”对话框中,单击“显示”选项卡,然后选择“只读”复选框。

    您已完成表单数据输入部分的版面设计。您现在可以处理查询部分了,用户可在其中输入值以向数据库查询现有记录。

    第 4 课:处理按钮和查询字段

    创建用于查询数据的控件之前,让我们来看一下添加到表单中的两个按钮:“新建记录”“运行查询”按钮。本课将解释这些按钮的作用并用演示如何对其进行修改。

    “运行查询”按钮基于前一个控件中的值查询数据库。然后数据库返回与那些值匹配的任何记录。例如,如果您在“公司名称”框中输入 Tokyo Traders ,然后单击“运行查询”按钮,则会返回有关 Tokyo Traders 供应商的记录,以及 Tokyo Traders 提供的所有产品。返回的记录显示在表单的数据输入部分,在其中可进行编辑并随后将更改后的内容提交到数据库

    “新建记录”按钮清除表单数据输入部分中的值,允许您输入新的供应商及其产品。

    为帮助您的用户更好地理解表单的查询和数据输入部分的区别,您可以向表单中添加标题和文本:

    1. 将插入点放到包含文本“单击此处添加标题”的版式表格单元格中,然后键入 供应商和产品
    2. 将插入点放到包含文本“单击此处添加表单内容”的版式表格单元格中,然后键入 要查询供应商,请在查询表中的一个或多个框中键入值,然后单击“运行查询”。要输入一个新记录,请单击“新建记录”,然后在数据输入表中键入值。

    接下来,您可以向表单的查询部分添加标题和控件:

    1. 将插入点放到包含文本“将查询字段拖到此处”的版式表格中,键入 查询,然后将文本设为粗体。
    2. 按 Enter。
    3. “数据源”任务窗格中,单击“queryFields”组展开它。
    4. 右键单击“q:供应商”组,然后单击快捷菜单中的“版式表格中的控件”。这将插入基于供应商查询数据库记录的控件。另外,还在版式表格中设计控件和标签的版式。

      注释  也可以使用此方法设计数据输入控件的版式。

    继续之前,让我们删除对您的用户来说多余的控件。这里,我们假设用户仅基于供应商的 ID、公司名称和国家/地区来查询值。

    1. 在刚才添加到表单的查询表中,右键单击“联系人姓名”行,指向快捷菜单中的“删除”,然后单击“行”
    2. 删除余下的行,不包括“供应商 ID”“公司名称”“国家/地区”

    现在,您的用户可以查询“供应商”表中的值、修改返回的记录、添加新记录并将结果提交回数据库

    第 5 课:自定义提交选项

    用户填写表单时,可以修改现有的记录并添加新的记录。要用所做的修改更新数据库,必须将完成后的表单提交到数据库。默认情况下,InfoPath 的“提交”命令在“文件”菜单和“常用”工具栏中都可用,以便用户可以轻松提交完成后的表单。除了这些选项,直接在表单中提供可使用户提交数据的按钮也很有用。本课讲述了如何为表单设置标准的“提交”按钮和自定义其他提交选项。

    1. 将插入点放置在表单的末尾。确保不在重复节内。
    2. “插入”菜单中,单击“其他控件”
    3. “控件”任务窗格的“插入控件”列表中,单击“按钮”
    4. 双击插入到表单中的按钮图标。
    5. “按钮属性”对话框的“操作”列表中,单击“提交”
    6. “提交表单”对话框的“提交到”框中,单击数据库,然后单击“确定”
    7. “按钮属性”对话框的“标签”框中,键入 提交表单

    您已经将“提交”按钮添加到了表单中,现在可以设置表单,使表单在提交后关闭并打开一个新的空白表单。另外,您可以编写自己的消息,指定是否成功提交了表单:

    1. “工具”菜单中,单击“提交表单”
    2. “提交表单”对话框中,单击“提交选项”
    3. “提交选项”对话框中,单击“新建空白表单”
    4. 选择“显示自定义消息”复选框。
    5. “成功消息”框中,键入 供应商和产品信息已更新。
    6. “失败消息”框中,键入 数据提交不成功。请重试。
    7. 保存表单以确保保留所做的更改。

    第 6 课:查询、编辑和添加记录

    您已经完成了表单的创建并将其连接到了 Access 数据库,现在应该对表单进行测试以确保可供用户正常使用。在本课中,您将扮演用户的角色,通过查询数据库、修改现有记录以及添加新记录来测试表单。

    首先,您应该尝试打开一个新的表单并添加新记录:

    1. “文件”菜单上,单击“填写表单”
    2. “填写表单”对话框中,单击“供应商和产品”

      注释  如果您没有看到“供应商和产品”表单,单击“打开”浏览到您的表单。

    3. 要输入一个新记录,请在“公司名称”框中键入Coho Winery

      注释  您不需要键入供应商 ID,因为在提交记录时,Access 会自动创建供应商 ID。

    4. “产品名称”框中,键入 Merlot
    5. 在“产品”重复节下,单击插入项目在表单中插入其他产品。
    6. 在第二个“产品名称”框中,键入 Chardonnay,然后单击“提交表单”
    7. 如果出现一个对话框,询问您是否允许网页访问其他域上的数据,单击“是”

    应该出现一个说明供应商和产品信息已被成功更新的对话框;单击“确定”后,该表单应关闭,并打开一个新的表单。

    您已经验证了用户可以使用您的表单向数据库中添加新记录,现在可以尝试修改其中一个记录:

    1. 在表单查询部分的“公司名称”框中,键入 Coho Winery,然后单击“运行查询”
    2. 如果出现一个对话框,询问您是否允许网页访问其他域上的数据,单击“是”

      表单的数据输入部分应该显示您在前面的练习中输入的供应商和两个产品。

    3. 在 Merlot 记录的“单位数量”框中,键入 12
    4. 在 Chardonnay 记录中,单击显示在选择的节左上角的快捷菜单按钮 按钮图像 ,然后单击“删除产品”。 Chardonnay 记录随即从表单中被删除。
    5. 单击“提交表单”
    6. 如果出现一个对话框,询问您是否允许网页访问其他域上的数据,单击“是”

    Chardonnay 记录将从数据库中被删除,而 Merlot 记录将在数据库中被更新。这时应该出现一个对话框,指出供应商和产品信息已成功更新。当您单击“确定”时,该表单应关闭并打开一个新表单。

    总结

    将这些步骤应用于您自己的数据库时,请记住以下关键问题:

    • 在 Access 数据库和 InfoPath 表单之间建立主数据连接时,必须从新建表单开始。
    • 将您的表单与多个表连接时,必须使用关键字段将这些表连接起来。
    • 确保排除长数据类型(包括“备注”和“超链接”数据类型)。
  • 相关阅读:
    [转]汇编语言的准备知识给初次接触汇编者 4
    Javascript实现页面跳转的几种方式收藏
    [转]汇编语言的准备知识给初次接触汇编者 1
    jQuery常用的函数的简单描述 便于查阅
    解决win7光驱驱动找不到的问题
    tar
    liunx64运行飞信的问题
    centos6禁用ipv6
    仍然是yum问题rhel6使用centos的yum源
    【MyBatis】使用MyBatis的分页组件PageHelper时,多表关联下使用别名查询时,前台传参过来,根据参数排序的解决方案
  • 原文地址:https://www.cnblogs.com/fuyingke/p/436077.html
Copyright © 2011-2022 走看看