靠谱电子书 > 经管其他电子书 > excel_vba_编程教程(完整版) >

第82部分

excel_vba_编程教程(完整版)-第82部分

小说: excel_vba_编程教程(完整版) 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



                                 End If  
                                End Sub  

10。接下来……   

     在本章中,你获得了便利的事件经验和Excel的事件编程,这是无价的技术,不管你是否 
 计划给他人创建电子表格应用软件,还 是简单地将你的日常任务自动化。Excel提供了许多你 
 可以响应的事件。通过编写事件过程,你可以更改对象对事件的响应方式。 你的事件过程可以 
 简单为一条语句,仅仅显示一自定义信息;也可以复杂到包括一些判断语句和其它允许你改变你 
 的程序流的编 程结构。当某个事件发生时,VB将会直接运行适当的事件过程,而不是按标准 
 的内置方式进行响应。 你已经学习了一些编写在标准模块里的事件过程(工作簿,工作表, 
 图表工作表),然而,其它的(内嵌图表,应用软件,查询 表)则需要你在类模块里面使用 
 WithEvents关键字创建一个新对象。你也学习了你可以使用EnableEvents属性激活或者禁止事  
 件。  
 在下章,你将学习如何使用Excel VB环境下的VBA过程来使用Access数据库。  

                            第十五章 在 Excel里使用 Access  

     在第九章里面,你已经学习了从Excel里通过自动控制(用于允许一个应用程序控制另外 
 一个应用程序的对象)来操纵Word和 Outlook。本章将给演示如何编程从Excel里使用Access, 
 使用下述方法获取Access数据到电子表格里面:Automation,DAO (Data Access Objects)以及 
 ADO (ActiveX Data Objects)。在你学习如何使用Excel VBA在Access数据库里执行各种任务 
 以及获取和存 储数据于Access数据库之前,我们来粗略地介绍一下,Microsoft Access用来 
 编程对其对象访问的数据访问方法。  

1。对象库  

  Access数据库包含各种类型的对象,储存在不同的对象库里面,用来使用VBA语言显示、存 
 储或者管理数据。在本章,你将涉 猎下面列出的几个库里的对象、属性和方法。     
 Access 10。0对象库提供了用来显示数据和在Access 2002应用软件上使用的对象。该库储存子 
 在MSACC10。OLB文件里,并且  
 可以自阿C:Program FilesMicrosoft OfficeOffice文件夹里面找到。在引用对话框上设置 
 了对该库的引用之后(将在下节涉及), 你将能够在对象浏览器里面访问该库的对象、属性和 
 方法(参见图15…1)。  

                                         289 

… 页面 306…

                                                                                    
图15…1 Access库 (译者:截图为Office 2003。Access库文件为MSACC。OLB)  
Access DAO 3。6对象库提供了数据访问对象(DAO),让你决定你的数据库的结构和使用VBA操作数据。 
该库储存在DAO360。DLL  
文件里,并且可以在C:Program Filesmon FilesMicrosoft SharedDAO文件夹里找到。 
在引用对话框上设置了对该库的引 用之后(将在下节涉及),你将能够在对象浏览器里面访 
问该库的对象、属性和方法(参见图15…2)。  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
                                                                                    
  
图15…2 DAO库  
Microsoft ActiveX Data Objects 2。5 (ADO) 提供了控件数据对象(ADO)并且允许你使用OLE DB 
供应者访问和操作数据。ADO  
使得在Access数据库里对数据源创建链接,读取,插入,修改和删除数据成为可能。该库储存 
于MSADO15。DLL里面,并可以  
在C:Program Filesmon Filessystemado文件夹里找到。在引用对话框上设置了对该库 
的引用之后,你将能够在对象浏览 器里面访问该库的对象、属性和方法(参见图15…3)。  

                                          290 

… 页面 307…

                                                                                
图15…3 ADODB库  
Microsoft ADO Ext。 2。5 for DDL(动态数据链接) and Security(安全) (ADOX) 储存让你 
定义数据库结构和安全的对象。例如, 你可以定义表格,索引和关系,以及创建和修改用户 
和用户组帐户。  
  
该库储存在MSADOX。DLL里并且可以在C:Program Filesmon FilesSystemado文件夹里找 
到。在引用对话框上设置了对 该库的引用之后,你将能够在对象浏览器里面访问该库的对象、 
属性和方法(参见图15…4)。  

                                                                                
图15…4 ADOX库  
Microsoft Jet and Replication Objects 2。6 库(JRO)包含用于对象库复制的对象。该库储存 
在MSJRO。DLL里并在C:Program  
Filesmon FilesSystemado文件夹里可以找到。在引用对话框上设置了对该库的引用之 
后,你将能够在对象浏览器里面访 问该库的对象、属性和方法(参见图15…5)。  

                                        291 

… 页面 308…

                                                                                  
 图15…5 JRO库  
   
 VBA对象库提供了很多VBA对象,函数和方法供你访问文件系统,操作日期和时间函数,进行数学 
 和财务计算,与用户互动,转  
 换数据和读取文本文件。该库储存在VBE6。DLL文件里,位于C:Program Filesmon  
 FilesMicrosoft SharedVBAVBA6文件 夹里。当你安装Microsoft Excel 2002时,就会自动 
 设置对该库的引用。该库在Office 2002所有的应用软件中共享(参见图15…6)。  

                                                                                  
 图15…6 VBA库  

2。建立对对象库的引用  

 要操作Access 2002里的对象的话,首先就得创建对Microsoft Access 10。0对象库的引用。  
 1。  在VB编辑器窗口,选择工具|引用以打开引用对话框。该对话框列出了你电脑上所有可用的 
 类型库  
 2。  在清单上找到Microsoft Access 10。0 Object Library,并勾选上它  
 3。  关闭引用对话框 一旦创建了对Access类型库的引用,你就可以使用对象浏览器来查看该 
 应用软件的对象,属性和方法了 (参见前面的图15…1)。 使用引用对话框创建对其它将在本章 
 练习中访问对象库的引用。你可以在前面部分里找到库清单。你可以忽略对Microsoft Jet and  
 Replication Objects 2。6 Library (JRO)的引用,因为这里不会用到它。 如果你对数据库 
 复制有兴趣的话,那么可以找到很多有关Access编程的书涉及该主题,包括本人的书Learn  
 Microsoft Access  

                                         292 

… 页面 309…

 2000 Programming by Example (Wordware Publishing (ISBN 1…55622…770…1))。  
 技巧15…1 创建对Access对象库引用的好处  
 当你设置对Access对象库的引用时,你将获得下述好处:  
 …  你可以在对象浏览器里面查看Access的对象,属性和方法  
 …  你可以在VBA过程里直接运行Access函数  
 …  你可以声明该应用软件类型的对象变量,而不必声明普通的Object类型。声明变量为Dim  
 objAccess As Access。Application  
      (早期捆绑)要比将其声明为Dim objAccess As Object (后期捆绑)要快。  
 …  你可以在你的VBA代码里使用Access内置常量  
 …  你的VBA过程将运行得更快一些  

3。链接到 Access  

  本章中的示例使用了多种链接到Access的方法,本节将详细讨论每种链接方法。你可以使用 
 下述三种方法之一来建立对Access 的链接:  
 □     Automation  
 □ Data Access Objects (DAO)  
 □ ActiveX Data Objects (ADO)  
 要访问数据库里的数据的话,你就得打开它。如何打开某个具体的数据库,很大程度上取决于 
 你使用了哪种数据库的链接方法。  

4。使用 Automation 链接到 Access 数据库  

 当你通过Automation从Excel(或者其它应用软件)里使用Access时,你需要采取下述步骤:  
 1。  设置对Microsoft Access 10。0 Object Library的引用(参见本章前面的“建立对对象库 
 的引用”)  
 2。  声明一个对象变量,代表Access应用软件对象  
     Dim objAccess As Access。Application  
     在该声明中,objAccess为变量名称,而Access。Application用提供该对象的VB对象库的名 
     称来限定该变量。  
 3。  返回引用到应用软件对象上,并且将该引用到该对象变量。使用CreateObject函数, 
     GetObject函数或者关键字New来返回 应用软件对象的引用。使用Set语句将应用赋值到对 
     象变量。  
      Dim objAccess As Object  
      Set objAccess = CreateObject(“Access。Application。10”) 当对象还没有实例时,可 
      以使用CreateObject函数返回一个引用到应用软件对象。如果Access已经运行了的话, 
      那么新的 实例就已创建了并且确定的对象也已创建了。  
      Dim objAccess As Object  
      Set objAccess = GetObject(; “Access。Application。10”)  
      或者  
      Set objAccess = GetObject(“C:Program Files _  
      & “Microsoft OfficeOfficeSamplesNorthwind。mdb”) 使用GenObject函数返回引 
 用到应用软件对象,以使用Access的当前实例,或者开启Access并打开一个文件(更多信息 
 参见技 巧15…2)  
 Dim objAccess As New Access。Application 上面的语句使用关键字New,声明了一个 
 对象变量,返回引用到应用软件对象,并且将该引用赋予对象变量,一步完成。 你也可 
 以使用两步法来声明一个对象变量,这样,对该对象的控制会更多些:  
 Dim objAccess As Access。Application  
 Set objAccess = New Access。Application  
 □ 当使用关键字New声明对象变量时,Access应用软件并不会打开,直到你开始在VBA代码里 
 真正使用该对象变量。  
 □ 当使用关键字New声明应用软件对象变量时,Access的一个新实例就会自动创建,你不需要 
 使用CreateObject函数  
 □ 使用关键字New创建应用软件对象的新实例比使用CreateObject函数要快 因为电脑上 
 可能安装了多个版本的Access,所以需要在函数GetObject或者CreateObject里包括该版本 
 号。下面列出最后四个 Access版本:  
 Microsoft Access 2003 Access。Application。11 (译者加)  
 Microsoft Access 2002 Access。Application。10  
 Microsoft Access 2000 Access。Application。9  
 Microsoft Access 97 Access。Application。8  

                                         293 

… 页面 310…

Microsoft Access 95 Access。Application。7 一旦使用第三步列出的方法之一创建了应用软 
件类的新实例,你就可以通过OpenCurrentDatabase或者NewCurrentDatabase方 法的帮助来打 
开一个数据库或者创建一个新数据库。你可以使用CloseCurrentDatabase方法关闭你在程序里 
打开的Access数据 库。  
技巧15…2 GetObject函数的参数  
GetObject函数的第一个参数 – Pathname – 是可选的。 当你想要使用某个特定文件里的对象 
是要用到它。第二个参数 – Class –  
是必需的,它明确哪个应用软件创建该对象,以及该对象的类型。当第一个参数为可选的而第二 
个为必需的时,你就必须在第一  
个参数位置放置一个逗号,如下所示:  
  
  
  
Dim objAccess As Object  
Set objAccess = GetObject(; Access。Application。10”)  
因为GetObject函数的第一个参数(Pathname)被忽略了,所以,就返回对Access

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的