ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]CopyFromRecordset的使用方法

[复制链接]

TA的精华主题

TA的得分主题

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

  3pLjzIjK.rar (11.26 KB, 下载次数: 169)


各位好:

    请帮忙指点一下吧.万分感谢.....

                              panjian318

       

TA的精华主题

TA的得分主题

发表于 2006-12-21 18:37 | 显示全部楼层

把CommandButton1_Click改成以下代码试一下
Private Sub CommandButton1_Click()
    Dim endroww%, roww%, addr$, sql$
    On Error Resume Next
    Application.ScreenUpdating = False
    'open data
    Set cnn = CreateObject("adodb.connection")
    cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
   
   
    '得到数据区的地址
    Windows(ThisWorkbook.Name).Activate
    Sheets("数据源").Select
    endroww = [a65536].End(xlUp).Row
    addr = Range(Cells(1, "L"), Cells(endroww, [aa1].End(xlToLeft).Column)).Address(0, 0)
   
    'clear data
     Sheets("查询").Select
    Cells.Select
    Selection.ClearContents
   
    'sql查询语句
    sql = "SELECT * FROM [数据源$] WHERE 工号='" & Trim(UCase(Me.TextBox1)) & " ' order by 日期"

    Err.Clear
    Sheets("查询").[A2].CopyFromRecordset cnn.Execute(sql)
    cnn.Close
    Set cnn = Nothing
    If Err.Description <> "" Then MsgBox Err.Description: Exit Sub
   
    '加字段名
    Sheets("数据源").Select
    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("查询").Select
    Rows("1:1").Select
    ActiveSheet.Paste
    Range("A3").Select
    Application.ScreenUpdating = True
   
    Unload Me
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-12-21 19:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

Private Sub CommandButton1_Click()
    Dim sql$
    On Error Resume Next
    Application.ScreenUpdating = False
    Set cnn = CreateObject("adodb.connection")
    cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
    sql = "SELECT * FROM [数据源$] WHERE 工号='" & Trim(UCase(Me.TextBox1)) & " ' order by 日期" 
    Err.Clear
    Sheets("查询").[A2].CopyFromRecordset cnn.Execute(sql)
    cnn.Close
    Set cnn = Nothing
    If Err.Description <> "" Then MsgBox Err.Description: Exit Sub
    Application.ScreenUpdating = True
    Unload Me
End Sub

首先感谢sccj2009朋友提供指点,已有所体会.还请继续解惑为盼......

以上代码实现了部份功能,但请问:1.' order by 日期" 这句是什么意思?起什么作用?

                              2.  上述代码将查询之"工号"对应所有例的内容都例示出来,但我只想例  示其中某些例的内容可以怎么办呢?

                              3.如果需要在"计件工资"旁边增加一例"工资累计",又可以怎么自动实现?

感谢.......

TA的精华主题

TA的得分主题

发表于 2006-12-21 20:45 | 显示全部楼层

1.“order by 日期”,结果按日期排序

2、把"SELECT * FROM [数据源$]"中的“*”,更换成“日期,工号,姓名”等需要的字段即可

3、同时需要“计件工资”和“工资累计”有点困难,我真不知道

上述问题都属SQL部分的知识,建议先看书了解一些

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-12-22 12:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢sccj2009朋友指点帮助........

TA的精华主题

TA的得分主题

发表于 2012-7-17 22:07 | 显示全部楼层
   Sheets("查询").[A2].CopyFromRecordset cnn.Execute(sql)
我想问一下,如何只导出指定字段呢?

TA的精华主题

TA的得分主题

发表于 2012-7-17 22:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有大大指导一下么?

TA的精华主题

TA的得分主题

发表于 2012-7-17 22:49 | 显示全部楼层
本帖最后由 zhaogang1960 于 2012-7-17 22:50 编辑
xh_xj 发表于 2012-7-17 22:44
就上面的例子,我只想导出工号和姓名,用CopyFromRecordset能否实现


ADO法主要是写SQL语句,其他语句基本固定:
Sql = "SELECT 工号,姓名 FROM [数据源$]"
'Sql = "SELECT 字段1,字段2,……,字段n FROM [工作表$] where 条件"    '条件可选

TA的精华主题

TA的得分主题

发表于 2012-7-17 22:44 | 显示全部楼层
就上面的例子,我只想导出工号和姓名,用CopyFromRecordset能否实现

TA的精华主题

TA的得分主题

发表于 2012-7-17 22:57 | 显示全部楼层
    sql = "SELECT 工号,姓名 FROM [数据源$] WHERE 工号='" & Trim(UCase(Me.TextBox1)) & " ' order by 日期"

谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-5 10:52 , Processed in 0.057419 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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