下载 Office 2003 程序集测试这个代码
如果按下 F5 键尝试测试这段代码,你会得到同样的类型未定义的错误消息。这是因为你没有包含一个必要的“引用”(与使用 Imports 语句类型)引入 Access 对象库。
你必须在 VB.NET 代码窗口中选择 Project | Add Reference(项目 | 添加引用),然后点击对话框中的 COM 选项卡。现在向下拉动滚动条,然后双击Microsoft Access 11.0 Object Library(11.0 表示 Office 2003)。点击 OK(确定)关闭对话框,这样就把这个与 Access 相关的代码库添加到了VB.NET 项目中了。
如果在 COM 库列表中没有发现Microsoft Access 11.0 Object Library 该怎么办呢?这是处于分布式框架可爱世界的程序员遇到的另外一个困难。幸运的是,如果没有这个特定的对象库,你可以很容易地修正它。只要到 MSDN 下载它即可。
为了使你的生活更加术语化,你正在下载的项叫做Office XP 主interop程序集(primary interop assembly)。程序集(assembly)是代码库(code library)的另外一个叫法,你可以叫它们 DLL 或者任何你想叫的名字。我发现代码库总共至少有25种叫法:程序集(assembly)、控件库(control library)、类库(class library)、控件类型库(control type library)、核心类型库(core type library)、开发环境(development environment)、动态链接库(dynamic link library)、可扩展库(extensibility)、宿主对象模型(host object model)、内核(kernel)、辅助库(helper)、对象库(object library)、对象模型(object model)、命名空间(namespace)、项目模型(project model)、代理库(proxylib)、插件(plug-in)、插件类型库(plugin type library)、运行时执行库(runtime execution library)、运行时执行引擎(runtime execution engine)、运行时库(runtime library)、服务(services)、服务库(services library)、类型库(type library)。不可否认,这些术语的内涵有些细微的差别。例如,控件的代码库中通常都会有一个用户界面。不过无论如何,多数这种术语只是说法不同而已。
在下载完Office XP PIA (主interop程序集)之后,你是不是认为然后就可以直接使用它了?对不起,你还需要对它进行更多的处理。它有一个 readme.htm 文件描述了安装和运行它的步骤。而且,在安装完 PIA 之后一定要重启 Windows。此外,有时候不使用这个代码库也可以在 VB.NET 和 Office 2003 之间进行通信。然而,对于这篇文章中的例子,PIA 是必须的。
运行 VB.NET 应用程序
现在你应该可以运行前面的代码了,按下 F5 查看代码执行过程。Access 将会启动,然后显示 Northwind 示例数据库中的 Sales by Category 报表。如果出现了一个错误消息,说明 Access 不能打开这个数据库,那么就表示在你的硬盘上的下面这个路径中没有发现Northwind.mdb 数据库。
"C:\Program Files\Microsoft Office\Office11\Samples\Northwind.mdb"
要么在你的硬盘上定位这个示例数据库然后更改代码中的路径,要么使用Visual Studio 光盘安装它。这样这个例子——你的第一个 VB.NET Office 2003 应用程序——就可以运用了。
