Excel 2000访问远程数据的四种方法

excel|访问|数据

     Excel 2000作为一个电子表格软件,它不仅有强大的数据处理能力,而且它的报表功能也是十分强大。因而常常用Excel 2000去调用Access、SQL Server、Oracle、DB2等数据库软件建立的大型数据库的内容。用户可以在工作表中对这些数据进行筛选、排序、查询、编辑和打印报表,十分方便,这也是大多数人都熟悉的。但如何去调用这数据呢?本人在这里提供4种方法。
    下面四种方法必须要先创建一个数据源,我们以SQL Server7.0内的样本数据库pubs为例。在控制面板/ODBC数据源/系统DSN,单击增加按纽,选取SQL Server驱动程序,建立一个与pubs数据库连接的叫pubs名称数据源。
           方法一:
    在Excel 2000中,选择 数据/获取外部数据/新建数据库查询,然后按向导的提示一步一步做,最后将数据返回Excel 2000中就行了
    这种方法是大家常用的,也是最方便的。但这种方法只能对远程数据进行查询,不能对远程数据进行增加和修改。
    方法二:
    这种方法需要VBA编程(方法三、方法四也一样),在Visual Basic编程中,我们经常用ADO来访问数据。ADO是Microsoft提供的针对各种各样数据源的新型高级编程接口。它支持大多数据库操作,在Excel 2000中应用ADO来访问数据,是十分理想的方法。看看下面一个实例:
    Sub opendb()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    cn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=pubs"
    rs.Open "select * from authors", cn
     Range("a1").CopyFromRecordset rs
     Rs.close
    cn.Close
    End Sub
    宏中第一、二句定义了一个ADO 的Connection对象和一个Recordset对象,第三、四句创建了一个ADO 的Connection对象和一个Recordset对象。第五句连接到前面我们建立的数据源pubs数据库。第六句是ADO 的Recordset对象执行一条SQL里select语句。在这也可以执行insert,update等等SQL语句的。第七句是将rs里的记录返回当前表里。第八、九句是关闭连接。运行前要在Excel 2000工具/引用中引用ADO的库文件。
           在Excel 2000中应用ADO对象,不仅可以对数据库进行查询,而且可以作增加,修改数据库的记录,甚至可以调用SQL SERVER7.0的存储过程,加强Excel 2000对数据库处理能力。
    方法三:
    Excel 2000的功能是十分强大的,它自带了一个ODBC加载宏,我们在Excel 2000中引用这个宏文件xlodbc.xla,就可以通过下面的方法去访问我们建立的数据源了
    Sub opendb()
        Dim id as integer
        id = SQLOpen(“DSN=pubs”)
        SQLExecQuery id, “select * from authors”
        Set output = Worksheets("Sheet1").Range("A1")
        SQLRetrieve id, output, , ,
        True SQLClose id       
    End sub
    第二句是调用xlodbc.xla宏中的SQLOpen函数建立一个对数据库pubs连接,第三句是SQLExecQuery函数执行了一条select语句,id是由 SQLOpen 函数返回的唯一连接标识,第四句是SQLRetrieve函数将SQLExecQuery函数执行的查询的结果返回到Excel 2000中。
           这种编程方法可以说来的容易,用得方便。也是一种好的访问远程数据方法。
    方法四:
    这种方法是使用API方法,下面是一个实例
        '分配环境句柄
    res = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HENV, hEnv) 
    '设置环境属性
        res = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 0)
        '分配数据库连接句柄
        res = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, hSvr)
    '连接到数据源
    sConnect=“DSN=pubs;DATABASE=pubs“
    res=SQLDriverConnect(hSvr,ByVal,0&,sConnect,Len(sConnect),sConnOut, Len(sConnOut), _ nConnOutLen, 0)
    sSql =“select * from authors“
    res = SQLExecDirect(hSel, sSql, Len(sSql))
    '将记录返回当前表里
    res=SQLNumResultCols(hSel, Nc)
    Do While (SQLFetch(hSel) <> SQL_NO_DATA_FOUND)
    J=j+1
    FOR I=1 TO Nc
       res = SQLGetData(hSel, I, SQL_C_CHAR, tmp, 512, pl)
       Cells(j, i) =tmp
    Next I
    Loop
    '释放数据库连接句柄
          res = SQLAllocHandle(SQL_HANDLE_STMT, hSvr, hSel)
    '释放数据库连接句柄
          ret = SQLFreeHandle(SQL_HANDLE_ENV, hEnv)
    这种方法比较复杂,调试也比较困难,但运行速度快,在进行大量查询数据和自己在API调用方面比较熟时,可以用这个方法。在用上面的实例时,要做API声明和常量的定义。

时间: 2016-02-09

Excel 2000访问远程数据的四种方法的相关文章

excel将文本转换为数字的四种方法

  excel将文本转换为数字的四种方法          方法一,利用函数查错工具,如果数字是文本格式的,在左上角会有一个小三角的东西,点击单元格,选中有个惊叹号样子的小方格,选择"转换为数字"完成批量转换 方法二,四则运算,就是将文本型数字进行加减乘除的运算,比如对C2进行转换,就写公式=C2*1,就可以将文本转成数值了 方法三,进行"减负运算",它其实也就是四则运算,只是写法有些不一样,比如对C2进行转换,就写公式=--C2,通过计算,就可以将文本型数字转换成

[AS3]Flash与后台数据交换四种方法整理【转】

随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法. 1.URLLoader(URLStream) 2.FlashRemoting 3.XMLSocket(Socket)  4.FMS/FCS 一.URLLoader(URLStream)篇 URLStream和URLLoader中URLLoaderDataFormat.BINARY类似,它提供对下载 URL 的低级访问方式,我在此不再重复了,有兴趣的,可以看Flash帮助中URLStr

php中post模拟提交数据实例四种方法

 代码如下 复制代码 <?php   //以程序登陆一个论坛登录为例 function bbslogin($user_login, $password, $host, $port = "80") {     //需要提交的post数据     $argv = array('cookie' => array('user_login' => $user_login, 'password' => $password, '_wp_http_referer' =>

SQL Server数据库中批量导入数据的四种方法总结_MsSql

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些. 第一:使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中.

SQL Server数据库中批量导入数据的四种方法总结

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题.其实,在SQL Server中集成了很多成批导入数据的方法.有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟.现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些. 第一:使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入.Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中.

精彩:ASP导出Excel数据的四种方法

excel|导出excel|数据 一.使用OWC 什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制.在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境.这种模式下,客户端工作站将在整个任务中分担很大的比重. <%Option Explic

WASP导出Excel数据的四种方法

一.使用OWC 什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制.在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境.这种模式下,客户端工作站将在整个任务中分担很大的比重. <%Option Explicit Class ExcelGen

ASP导出Excel数据的四种方法

excel|导出excel|数据 一.使用OWC 什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制.在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境.这种模式下,客户端工作站将在整个任务中分担很大的比重. <%Option Explic

Excel中将文本转换为数字的四种方法

当导入在另一程序(如 dBASE 或 Lotus 1-2-3)中创建的文件或导入从大型机下载的文件时,Excel 2003 可能会将其中的某些数字识别为文本. 这将导致某些函数(如 SUM 和 AVERAGE)忽略这些单元格中的数值.除了要转换的数字外,这些文本串还可能包含真正的文本字符.那么如何将文本转换为数字? 要将工作表中的文本转换为数字,可以使用本文中介绍的任一方法(方法 1 至 7). 注意 每一方法均假定您已将单元格中的任何单元格数字格式更改为"常规".为此,请按照下列步骤