Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • 巧用Excel2000编制..
  • 让Excel的数据随原表的..
  • Excel2000 应用案..
  • 给含公式的单元格点颜色看看
  • Excel 2000自定义..
  • Excel2000 应用案..

最新文章

  • 在 Excel中 打开Ac..
  • 为选择的区域添加边框
  • 如何在Excel中使用文件..
  • 用快捷键实现相对引用和绝对..
  • 【技巧】Excel控制特定..
  • Excel技巧集锦

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > Excel技巧 > Excel应用与操作
Excel应用与操作

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

 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声明和常量的定义。
发布人:佚名-excelhome  
分享到:
点击次数:  更新时间:2005-02-11 09:17:17  【打印此页】  【关闭】
上一条:Excel 内建的预设"路径"函数知多少  下一条:在备注型文本框处录入时打开一个放大窗口(显示比例)



相关文章

  • • 在 Excel中 打开Access窗体或者报表的错误原因及解决办法
  • • 为选择的区域添加边框
  • • 如何在Excel中使用文件对话框
  • • 用快捷键实现相对引用和绝对引用快速来回切换
  • • 【技巧】Excel控制特定单元格输入文本的长度
  • • Excel技巧集锦
  • • Excel技巧大汇总
  • • 在word中输出数学符号

热门文章

  • [2005-02-15] 如何利用Excel审计银行贷款利息access数据库
  • [2005-02-11] 利用Excel 中的信息创建Windows用户账户access数据库
  • [2005-04-06] 用Excel巧转工资条access数据库
  • [2005-02-13] Excel 超级链接方式应用技巧access数据库
  • [2005-03-12] Excel97超级链接方式应用技巧access数据库
  • [2005-02-12] 笑傲江湖的 Excel 2000access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn