Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2131|回复: 4

[已解决]VBA代码求助!

[复制链接]
发表于 2015-8-8 11:13 | 显示全部楼层 |阅读模式
详见附件!(结果表中有要求)
最佳答案
2015-8-8 17:56
本帖最后由 爱疯 于 2015-8-8 18:06 编辑

求助3.rar (20.45 KB, 下载次数: 5)

求助.rar

9.97 KB, 下载次数: 14

发表于 2015-8-8 13:52 | 显示全部楼层
Sub test2()
    Dim con, rs, sql$, i%

    '1)创建对象
    Set con = CreateObject("adodb.connection")  '建立ADO连接对象
    Set rs = CreateObject("adodb.recordset")   '建立ADO记录集对象

    '2)创建连接
    '已创建

    '3)建立连接
    con.Open "provider=microsoft.ace.oledb.12.0;" & "extended properties=excel 12.0;data source=" & ThisWorkbook.FullName
    '    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\员工.accdb"

    '4)编辑SQL
    sql = "select a.年级,a.层次,a.专业名称,a.课程名称,a.选课人数,a.班代码,b.学号,b.姓名,b.班代码1,b.备注 from " _
        & "[开课计划$] a,[学员名单$] b where a.年级=b.年级 and a.层次=b.层次 and a.专业名称=b.专业名称1"

    '5)执行SQL
    Set rs = con.Execute(sql)       '存入Recordset对象
    '    MsgBox IIf(rs.BOF And rs.EOF, "没记录", "有记录")

    '6)导入工作簿
    With Sheets(1)
        .Cells.Clear
        For i = 0 To rs.Fields.Count - 1    '字段
            .Cells(1, i + 1) = rs.Fields(i).Name
        Next
        .Range("A2").CopyFromRecordset rs    '记录集
        .Cells.EntireColumn.AutoFit    '可选
        .ListObjects.Add xlSrcRange, .Range("A1").CurrentRegion, , xlYes    '可选,把结果区域改作列表
    End With

    '7)关闭连接,释放对象
    rs.Close: Set rs = Nothing
    con.Close: Set con = Nothing
End Sub
求助2.rar (25.2 KB, 下载次数: 2)
回复

使用道具 举报

 楼主| 发表于 2015-8-8 16:06 | 显示全部楼层
爱疯 发表于 2015-8-8 13:52
Sub test2()
    Dim con, rs, sql$, i%

先谢谢爱版版!!
我的是excel2003版。运行后出现以下情况:


01.png
02.png
回复

使用道具 举报

发表于 2015-8-8 17:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 爱疯 于 2015-8-8 18:06 编辑

求助3.rar (20.45 KB, 下载次数: 5)
回复

使用道具 举报

 楼主| 发表于 2015-8-8 20:53 | 显示全部楼层
谢谢爱版,爱你都爱疯了~~~~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 16:37 , Processed in 0.333513 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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