如果您在企业中使用 Microsoft® Access,本文将向您介绍如何方便地使用它访问 IBM® DB2® for Linux®, UNIX®, and Windows® 数据。您将了解如何设置它才能访问 DB2,然后学习如何根据底层的 DB2 数据存储来创建窗体和生成报告。
简介
很多人可能认为 Microsoft Access 和 IBM DB2 数据库服务器是冤家对头。其实两者都是数据库应用程序。当然,由于 DB2 具有经过证明的可伸缩性和性能跟踪记录,它更适合于基于企业的任务关键型应用程序。然而,很少人能认识到 Microsoft Access 可以与 DB2 和平相处。Microsoft Access 可用作访问 DB2 数据并与之交互的易用前端。本文将向您介绍如何做到这一点,演示如何使用 Microsoft Access 与底层的 DB2 数据存储交互,以创建窗体和生成报告。
假定条件
对于这个 Microsoft Access/DB2 Universal Database tandem 研究,我们假定您已经安装了 Microsoft Access。还假定您安装了 DB2 for Linux, UNIX, and Windows。您将创建一个 Microsoft Access 将与之交互的简单的 DB2 数据库。为了简便,假定 DB2 和 Microsoft Access 同时存在于同一台物理计算机上。如果 DB2 实例驻留在另一台计算机上,也无需担心。本文还介绍如何通过网络与 DB2 实例交谈。
使用的示例数据库
要创建示例数据库,请执行以下步骤:
- 出于演示目的,我们首先启用 DB2 命令行处理器并创建用于试验的数据库:
db2 => create database accdb2
|
并连接到它(假定您具有用户名 db2admin 和密码 db2admin):
db2 => connect to accdb2 user db2admin using db2admin
|
- 创建名为 accounts 的表。此虚构的表模仿帐户号码的存储表:
db2 => create table accounts(accountnum varchar(64) not null primary key,
firstname varchar(30) not null, lastname varchar(30) not null)
|
该表的简易性旨在便于监护。
- 向数据库添加几个值:
db2=> insert into accounts values (‘0001','George','Washington')
db2=> insert into accounts values (‘0002','John','Adams')
db2=> insert into accounts values (‘0003','Thomas','Jefferson')
|
链接到 DB2
现在,您需要为 Microsoft Access 准备与 DB2 数据库交谈的能力。这通过开放式数据库连接性(Open Database Connectivity,ODBC)连接来实现。请执行以下步骤:
- 从 Microsoft Windows Control Panel,转到 Administrative Tools 图标,然后选择 Data Sources (ODBC) 图标,如下面的 图 1 所示:
图 1. Data Sources (ODBC) 图标
- 选择 "User DSN" 选项卡下的 Add… 按钮,如 图 2 所示:
图 2. 添加数据源
- 从随后显示的 "Create New Data Source" 屏幕上,选择 IBM DB2 ODBC DRIVER,并单击 Finish。注意,仅当您在运行 Microsoft Access 的计算机上安装 DB2 时安装了 DB2 ODBC Driver 组件,此选项才会显示。
图 3. 创建新数据源
- 从数据库别名下拉菜单选择 ACCDB2,在 Database alias 字段提供数据源的名称。我通常在数据库名称后附加 DS。单击 OK 继续。
图 4. 指定数据源名称
- 假定数据库与 Microsoft Access 同时存在于同一台计算机上。如果情况不是如此,则需要在命令行处理器上使用编目命令或者使用 DB2 Configuration Assistant 首先编目远程数据库。完成此操作后,您应该能够在 Database alias 下拉菜单中看到远程数据库(显示您编目的名称),如 图 4 所示。
将 Access 链接到 DB2 表
要将 Microsoft Access 链接到 DB2 表,请执行以下步骤:
- 从 Microsoft Access 中,转到 File > New,并选择 Blank database。不必担心,您不会将数据存储在 Microsoft Access 中,只不过需要将 Microsoft Access 数据库作为要创建的窗体和报告的逻辑容器。在硬盘驱动器上找到一个用于存储数据库的位置。在本文中,我们称之为 accessdb.mdb,如 图 5 所示。指定名称后,单击 Create。
图 5. 在 Access 中创建新数据库
- 从随后显示的屏幕上,右键单击 Objects 下的 Tables,并选择 Link Tables… 上下文选项。
图 6. 链接表
- 在随后显示的 Link 屏幕上,从 Files of Type: 下拉菜单选择 ODBC Databases() 选项。
图 7. Link 屏幕
- 在 Select Data Source 屏幕上,选择 Machine Data Source 选项卡。在该选项卡中,您应该看到以前建立的 ACCDB2DS 数据源。选择它,并单击 OK。
图 8. 选择数据源
- 提供连接到 DB2 数据库所需的凭证。指定 DB2 用户 ID 和密码,并单击 OK。
图 9. 输入凭证
- 如果系统接受了凭证,则显示 Link Tables 窗口。在此,您应该能够在 tables 屏幕中看到 DB2ADMIN.ACCOUNTS 表。选择该表,并单击 OK。注意 Microsoft Access 如何发现数据库中的所有表,包括 SYSCAT 模式中的表。同时注意,在此窗口中,您可以指定多个表,但为了简单起见只选择了一个表。
图 10. Link tables
- 双击新创建的 DB2ADMIN_ACCOUNTS 图标。执行此操作时,应该会显示 DB2ADMIN.ACCOUNTS 表中保存的数据,如 图 11 所示:
图 11. 所选表中的数据
注意,如果更改此屏幕中的数据并关闭 Table 窗口,则该更改将持久存储到数据库中。这里假定您的 DB2 数据库访问权限允许您更改数据库中的数据。
业务分析师实际上并不喜欢您迄今看到的用户界面。相反,他们倾向于使用窗体与底层数据库数据交互。
使用 Microsoft Access 窗体
本文对于在 Microsoft Access 中创建窗体的过程不会谈及过多,因为本文并不是关于 Microsoft Access 的教程。它只涉及 Microsoft Access 和 DB2 表的链接。但是,本文是一个演示,向您介绍如何在 Microsoft Access 中快速生成窗体,允许您在底层 DB2 表中插入、删除和更新记录。
- 从 Object 窗格中,选择 Forms > Create form by using wizard:
图 12. 使用向导创建窗体
- 在 Form Wizard 的第一个屏幕中,允许指定在窗体上需要哪些字段。如果已从数据库导入一个以上的表,则可从不同的表获取字段。选择 >> 按钮将 ACCOUNTS 表中的所有字段移动到 Selected Fields 部分。此操作可以让窗体有效地包括所有字段。单击 Next。
图 13. Form wizard 屏幕 1
- Microsoft Access 允许从控制窗体上字段位置的多种窗体布局作出选择。在本文中,选择 Columnar 格式,并单击 Next。
图 14. 窗体布局
- 为窗体挑选样式。在执行此操作的同时,挑选窗体背景。挑选喜欢的样式,单击 Next。
图 15. 窗体样式
- 在最后一个 Form Wizard 屏幕中,为窗体指定标题。默认情况下,窗体的名称为 <SCHEMANAME_TABLENAME>。单击 Finish。
图 16. 指定窗体标题
- 此时,您应该看到创建的窗体。
图 17. Access 窗体
注意,使用 Microsoft Access 修改和添加条目时,遵守底层数据库表的约束。可以通过尝试使用同一个 ACCOUNTNUM 值添加两个帐户来查看这一点。您可以回想一下,创建 DB2 表时指定了 ACCOUNT_NUM 列作为主键。
在该窗体中,您可以通过只修改窗体中的值来修改现有 DB2 表条目。还可以添加和删除 DB2 表中的条目。要向数据库添加记录,请选择 > 按钮并移动到最后一个记录(这应该是一个空白记录)。按如下所述添加条目:
图 18. 添加记录
- 在 Microsoft Access 窗体中添加记录并在最后一个字段中按 Enter 后,您会立即看到该记录已经添加到底层 DB2 表中了。可以使用 ACCOUNTS 表上的简单查询对此操作进行验证:
图 19. 验证添加记录
使用 Microsoft Access 报告
Microsoft Access 报告代表很多业务分析师用于组织和显示数据的快速方式。报告允许您以可快速方便地生成的有吸引力且信息丰富的布局来格式化后端数据。
由于已经链接 DB2 表,您可以使用 Microsoft Access 报告来给出存储在 DB2 中的数据。
要演示从 DB2 数据创建报告,请执行以下步骤:
- 从 Object 窗格中,选择 Reports > Create report by using wizard。
图 20. 使用向导创建报告
- 与前面 Form Wizard 的第一个屏幕中看到的类似,Report Wizard 的第一个屏幕允许指定报告上需要的字段。如果已从数据库导入一个以上的表,则可从不同的表取得字段。选择 >> 按钮将 ACCOUNTS 表中的所有字段移动到 Selected Fields 部分。此操作可以让报告有效地包括所有字段。单击 Next。
图 21. Report wizard
- 可以指定分组级别以控制报告数据出现的顺序。如果希望按部门分开员工电话目录以将每个部门的成员分组在一起,则可能使用此技术。本文跳过了此选项。单击 Next。
图 22. 指定分组级别
- 可以指定记录的排序顺序。例如,可以在报告中按字母顺序列出记录。本文跳过了此选项。单击 Next。
图 23. 为记录排序
- 指定显示报告的布局。您具有控制报告方向的选项(即横向或纵向)。在此演示中,为布局指定 Tabular,为方向指定 Portrait。
图 24. 对报告进行布局
- 按照报告的布局规范,可以为报告指定样式。挑选喜欢的样式,单击 Next。
图 25. 报告样式
- 为报告指定标题。默认情况下,报告的名称为 <SCHEMANAME>_<TABLENAME>。指定喜欢的名称,单击 Finish。
图 26. 指定标题
- 此时,应该显示报告的预览。可以保存此报告,也可以打印出来。注意,对底层 DB2 表数据的更改(通过 DB2 命令行处理器或任何其他访问 DB2 表的应用程序在 Microsoft Access 中执行)将动态更改 Microsoft Access 报告。
图 27. 完成的报告
结束语
本文考虑到很多人在其台式计算机上与 Microsoft Office 一起安装了 Microsoft Access。同时还考虑到很多业务分析师熟悉 Microsoft Access,但对 DB2 命令行处理器的底层复杂性心怀恐惧。本文的目的不是为了试图向业务分析师讲授复杂的 SQL,而是向您演示如何利用 Microsoft Access 作为 DB2 数据的前端。 |