`

ADO连接excel表格,怎样访问数据?

 
阅读更多

VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。

  一、VB读写EXCEL表:

  VB本身提自动化功能可以读写EXCEL表,其方法如下:

  1、在工程中引用MicrosoftExcel类型库:

  从"工程"菜单中选择"引用"栏;选择MicrosoftExcel9.0ObjectLibrary(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。

  2、在通用对象的声明过程中定义EXCEL对象:

DimxlAppAsExcel.Application
DimxlBookAsExcel.WorkBook
DimxlSheetAsExcel.Worksheet

  3、在程序中操作EXCEL表常用命令:

SetxlApp=CreateObject("Excel.Application")'创建EXCEL对象
SetxlBook=xlApp.Workbooks.Open("文件名")'打开已经存在的EXCEL工件簿文件
xlApp.Visible=True'设置EXCEL对象可见(或不可见)
SetxlSheet=xlBook.Worksheets("表名")'设置活动工作表
xlSheet.Cells(row,col)=值'给单元格(row,col)赋值
xlSheet.PrintOut'打印工作表
xlBook.Close(True)'关闭工作簿
xlApp.Quit'结束EXCEL对象
SetxlApp=Nothing'释放xlApp对象
xlBook.RunAutoMacros(xlAutoOpen)'运行EXCEL启动宏
xlBook.RunAutoMacros(xlAutoClose)'运行EXCEL关闭宏

  4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。

  二、EXCEL的宏功能:

  EXCEL提供一个VisualBasic编辑器,打开VisualBasic编辑器,其中有一工程属性窗口,点击右键菜单的"插入模块",则增加一个"模块1",在此模块中可以运用VisualBasic语言编写函数和过程并称之为宏。其中,EXCEL有两个自动宏:一个是启动宏(SubAuto_Open()),另一个是关闭宏(SubAuto_Close())。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏。但是通过VB的自动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自动运行,而需要在VB中通过命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros(xlAutoClose)来运行启动宏和关闭宏。

  三、VB与EXCEL的相互勾通:

  充分利用EXCEL的启动宏和关闭宏,可以实现VB与EXCEL的相互勾通,其方法如下:

  在EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。VB程序在执行时通过判断此标志文件存在与否来判断EXCEL是否打开,如果此标志文件存在,表明EXCEL对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明EXCEL对象已被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建EXCEL对象。

  四、举例:

  1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1的Caption属性改为EXCEL,Command2的Caption属性改为End。然后在其中输入如下程序:

DimxlAppAsExcel.Application'定义EXCEL类
DimxlBookAsExcel.Workbook'定义工件簿类
DimxlsheetAsExcel.Worksheet'定义工作表类
PrivateSubCommand1_Click()'打开EXCEL过程
 IfDir("D:/temp/excel.bz")=""Then'判断EXCEL是否打开
  SetxlApp=CreateObject("Excel.Application")'创建EXCEL应用类
  xlApp.Visible=True'设置EXCEL可见
  SetxlBook=xlApp.Workbooks.Open("D:/temp/bb.xls")'打开EXCEL工作簿
  Setxlsheet=xlBook.Worksheets(1)'打开EXCEL工作表
  xlsheet.Activate'激活工作表
  xlsheet.Cells(1,1)="abc"'给单元格1行驶列赋值
  xlBook.RunAutoMacros(xlAutoOpen)运行EXCEL中的启动宏
 Else
  MsgBox("EXCEL已打开")
 EndIf
EndSub

PrivateSubCommand2_Click()
 IfDir("D:/temp/excel.bz")<>""Then'由VB关闭EXCEL
  xlBook.RunAutoMacros(xlAutoClose)'执行EXCEL关闭宏
  xlBook.Close(True)'关闭EXCEL工作簿 
  xlApp.Quit'关闭EXCEL
 EndIf
 SetxlApp=Nothing'释放EXCEL对象
 End
EndSub


  2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"bb.xls"的EXCEL文件。

  3、在"bb.xls"中打开VisualBasic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:


Subauto_open()
 Open"d:/temp/excel.bz"ForOutputAs#1'写标志文件
 Close#1
EndSub
Subauto_close()
 Kill"d:/temp/excel.bz"'删除标志文件
EndSub

  4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。而无论EXCEL打开与否,通过VB程序均可关闭EXCEL。这样就实现了VB与EXCEL的无缝连接。

ADO打开EXCEL示例

DimConnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimiAsInteger
DimsqlAsString

PrivateSubForm_Load()
OnErrorResumeNext
strName="f:/book.xls"'EXCEL文件名
strSheetName="sheet1"'EXCEL表名

Conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurityInfo=False;DataSource="&strName&";ExtendedProperties='Excel8.0;HDR=Yes'"'连接EXCEL文件

sql="select*from["&strSheetName&"$]"'打开EXCEL表
rs.Opensql,Conn,3,3

MsgBoxrs.RecordCount
DoUntilrs.EOF
Fori=0Tors.Fields.Count-1
List1.AddItemrs.Fields.Item(i).Name
IfNotIsNull(rs.Fields.Item(i).value)Then
List2.AddItemrs.Fields.Item(i).value
Else
rs.Update
rs.Fields.Item(i).value="peter"&i
rs.Update
EndIf
Nexti
rs.MoveNext
Loop
EndSub

分享到:
评论

相关推荐

    VBA+ADO 连接Excel表格查询操作数据(SQL语句操作)

    VBA+ADO 连接Excel表格查询操作数据(SQL语句操作) SQL语句操作表格

    初学者Ado(Adodb)读取(访问)Excel数据

    初学者Ado(Adodb)读取(访问)Excel数据,有详细的说明,在VB.net2010上编译通过,绝对可以运行,希望能给初学都以帮助。 但这不是VB.net读取(访问)Excel数据的最好方法,最好的方法是应该vb.net平台进行改进后的ado.net...

    C#把excel表格中的数据读入到数组

    ### C#将Excel表格中的数据读入到数组 在日常工作中,我们经常需要处理大量的Excel文件,特别是当这些文件作为数据源时。本篇将详细介绍如何利用C#语言实现将Excel表格中的数据读取到数组中,从而方便进行进一步的...

    ADO操作EXCEL之VB版

    而ADO(ActiveX Data Objects)是Microsoft提供的一种数据访问接口,它允许程序员通过简单的代码来处理各种类型的数据源,包括数据库、XML文件以及我们这里关注的Excel电子表格。"ADO操作EXCEL之VB版"这个主题,主要...

    VC ADO 访问电子表格(正确的)

    而ADO(ActiveX Data Objects)是Microsoft提供的一种数据访问技术,它使得开发者能够方便地访问各种数据源,包括数据库、电子表格等。在这个场景中,"VC ADO 访问电子表格(正确的)"意味着我们将讨论如何利用VC和ADO...

    Delphi用ADO把Excel内容读取至表格

    ADO是Microsoft提供的一个用于访问数据的接口,它可以连接到多种数据源,包括数据库、文本文件和Excel文件等。它通过OLE DB技术提供了一套统一的API,使得数据操作变得简单易行。 在Delphi 2007中,要使用ADO,首先...

    DELPHI ADO导出EXCEL

    本篇文章将详细介绍如何在Delphi 7中利用ADO来导出数据到Excel表格。 首先,你需要在Delphi项目中导入ADO相关的库。这通常包括ADODB和DBXLS units,这两个单位包含了处理数据库连接和Excel文件所需的组件和接口。在...

    在DELPHI中使用ADO直接访问Excel数据文件.txt

    在Delphi中使用ADO直接访问Excel数据文件是一个高级的编程技术,主要应用于需要与Excel文件进行交互的应用场景中。此技术允许开发人员绕过传统的文件读写操作,直接通过ADO(ActiveX Data Objects)组件来读取和写入...

    ADO访问Excel

    **ADO(ActiveX Data Objects)访问Excel**是利用微软的COM组件来实现对Excel电子表格进行数据操作的一种技术。在编程领域,特别是C++开发中,ADO被广泛用于与各种数据库进行交互,包括Microsoft Excel。下面我们将...

    ADO读取Excel

    需要注意的是,这种方式适用于小型数据操作,对于大数据量的处理,可能会有性能问题,这时可能需要考虑使用其他更高效的方式,如ODBC或JDBC连接Excel,或者将数据导入数据库进行处理。 在提供的压缩包文件...

    excel,clistctrl和数据库之间,导入导出表格

    例如,可以创建一个宏来读取数据库中的记录并填充到Excel表格,或者相反,将Excel表格的数据写入数据库。 在涉及到数据库操作时,ADO提供了一种统一的接口,使得开发人员能够访问各种数据库系统,包括SQL Server、...

    用ADO.NET操作Excel数据

    ### 使用ADO.NET操作Excel数据 #### 一、概述 在.NET框架中,ADO.NET是一种广泛使用的数据访问技术,它提供了高效、灵活的方式来处理各种数据源。对于需要在应用程序中读取或写入Excel文件的情况,ADO.NET通过使用...

    ado读取excel

    1. **ADO (ActiveX Data Objects)**:一种用于Windows平台上的数据访问技术,它允许程序通过OLE DB或ODBC驱动器与不同的数据源(如数据库文件、Excel表格等)进行交互。 2. **OLE DB (Object Linking and ...

    数据库数据到Excel电子表格数据的转换论文.doc

    本解决方案中,ADO对象用于连接关系数据库,SQL Server用于存储和处理数据,Excel电子表格数据用于数据分析和报表生成。 四、数据转换的实现 数据转换的实现可以分为三个步骤:首先,使用ADO对象连接关系数据库,...

    Excel_VBA+ADO+SQL入门教程看见星光.docx

    Excel VBA 中可以使用 ADO 来连接和操作数据库,从而实现数据的读取、写入和处理。 二、在 VBA 中执行 SQL 语句 在 VBA 中,使用 ADO 连接数据库,执行 SQL 语句可以通过以下步骤: 1. 连接数据库:使用 ADO 连接...

    ADO.NET 如何读取 Excel

    在.NET框架中,ADO.NET是用于访问数据存储的库,如数据库、XML文件或像Excel这样的电子表格。本文将深入探讨如何使用ADO.NET来读取Excel文件,这在处理大量数据导入、分析或报告时非常有用。我们将提供详细的步骤、...

    ASP实现 将Excel表格数据批量导入到SQLServer数据库

    ASP实现将Excel表格数据批量导入到SQLServer数据库的过程中涉及的知识点主要包括以下几个方面: 1. Excel数据读取技术:在ASP中,可以使用ADO(ActiveX Data Objects)技术,通过ADODB组件读取Excel文件的数据。...

    连接Excel并显示在ListView中

    综上所述,连接Excel并显示在ListView中涉及了数据的读取、转换和UI展示等多个环节,需要熟悉.NET框架的数据库访问技术,以及Windows Forms或WPF的控件操作。通过实践和理解这些知识点,开发者可以构建出强大的数据...

    使用ADO读写Excel中的表

    标题 "使用ADO读写Excel中的表" 描述的是如何利用ActiveX Data Objects(简称ADO)这一数据访问接口来操作Excel文件中的数据。ADO是Microsoft提供的一种高效的数据访问技术,允许程序与各种数据库进行交互,包括...

    利用ADO将EXCEL批量导入至ACCESS中

    首先,我们需要确保已安装了Microsoft Office的完整版本,因为这包含了用于连接Excel和Access的必需组件,如Jet Engine或ACE OLEDB Provider。然后,我们可以使用任何支持ADO的编程语言,如VBA(Visual Basic for ...

Global site tag (gtag.js) - Google Analytics