ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 爱歌学习

使用 ADO-SQL 处理 EXCEL 文件的程序架构(实例注释)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-9 14:14 | 显示全部楼层
本帖已被收录到知识树中,索引项:ADO技术
本想先学好递归才看数据库和高级控件的,但看了这贴,引得我先要在数据库门外先看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-14 23:49 | 显示全部楼层

实例11:ADO批量更新ACCESS库 或 Excel表:
http://club.excelhome.net/viewthread.php?tid=171154&extra=&page=2#422984

hboJsWw3.rar (19.81 KB, 下载次数: 488)


Sub SELECT_INTO_NEWFILE()
    Dim Sql$
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & _
                "\通讯录.mdb;Jet OLEDB:Database Password=123"
    Sql = "SELECT * INTO [Sheet1] IN '" & ThisWorkbook.Path & "\NEW.xls' 'Excel 8.0;' FROM 档案1"
                                                                                         '(其中.xls' 'Excel之间空格不可缺)
    conn.Execute Sql
    conn.Close: Set conn = Nothing
End Sub

资料:http://support.microsoft.com/kb/295646



实例13:批量导出DBF为对应Excel文件
http://club.excelhome.net/viewthread.php?tid=171715&extra=&page=2#431370

Sub DBF_NEWXLS()
    Dim oConndbf, oConnxls, oResult, strSQL$, sName$
    Set oConndbf = CreateObject("ADODB.Connection")
    Set oConnxls = CreateObject("ADODB.Connection")
   
    '打开选取文件对话框,将选取的各文件全路径名存于 Filename 数组中
    Filename = Application.GetOpenFilename("dbase Files (*.dbf), " & _
                    "*.dbf", , "请选取文件", , MultiSelect:=True)
    If Not IsArray(Filename) Then Exit Sub      '如果未选取文件,则退出程序
   
    On Error Resume Next   '关闭错误开关,以跳过“已有相同文件夹存在”的错误提示
    MkDir ThisWorkbook.Path & "\Excel文件"
    On Error GoTo 0        '打开错误开关
    For Each fn In Filename
        sName = Dir(fn)
        oConndbf.Open "Driver={Microsoft Visual FoxPro Driver};" & _
                        "SourceType=DBF;SourceDB=" & Left(fn, Len(fn) - Len(sName) - 1)
        strSQL = "Select * from " & sName
        Set oResult = oConndbf.Execute(strSQL)
        Cells.Clear
        For col = 1 To oResult.fields.Count     '以上结果不包含字段名,故需循环产生
           Cells(1, col) = oResult.fields(col - 1).Name
        Next

        '将对 DBF 文件的查询结果至于当前表以 A2 为左上角的区域中
        [a2].CopyFromRecordset oResult
       
        '若要存为新文件,可增加以下代码:
        oConnxls.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;" & _
                        "Data Source=" & ThisWorkbook.FullName
        strSQL = "SELECT * INTO [Sheet1] IN '" & ThisWorkbook.Path & "\Excel文件\" & _
                    Left(sName, Len(sName) - 4) & ".xls' 'Excel 8.0;' FROM [临时表$]"
        Set oResult = oConnxls.Execute(strSQL)
        oConndbf.Close: oConnxls.Close
    Next
    Set oConndbf = Nothing: Set oConnxls = Nothing
    MsgBox "文件已产生在“Excel文件”文件夹下"
End Sub


[此贴子已经被作者于2007-1-24 22:57:44编辑过]

6tjn6Ufd.rar

25.37 KB, 下载次数: 262

wUlR3dDD.rar

24.79 KB, 下载次数: 252

7LJpeekb.rar

27.2 KB, 下载次数: 242

TA的精华主题

TA的得分主题

发表于 2006-6-15 23:55 | 显示全部楼层

太好了,可以学到好多东西呀,爱歌同志,我爱你!!!

TA的精华主题

TA的得分主题

发表于 2006-6-26 12:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

 

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[em23][em17][em23][em17][em23][em17][em23][em17][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23][em23]

[此贴子已经被作者于2006-6-26 12:24:43编辑过]

TA的精华主题

TA的得分主题

发表于 2006-7-6 16:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-7-8 11:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
太好了,谢谢楼主的辛勤劳动!继续学习中!

TA的精华主题

TA的得分主题

发表于 2006-7-13 16:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-7-13 16:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-7-27 10:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-8-4 11:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我想知道在VBa中通过ADO调用SQL语言,如何实现对Excell工作表行或者列的引用,比如,如何引用列A、列B,或1行,2行,甚至对对某一个单元格的引用,我的意思是指在SQL那一条语句中引用工作表的行列或单元格
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 21:42 , Processed in 0.034848 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表