vba ado怎么逐条导出记录

 我来答
百度网友51266d27
2017-11-28 · TA获得超过6935个赞
知道大有可为答主
回答量:3718
采纳率:55%
帮助的人:519万
展开全部

试试下面的代码,用ado读取数据:

在如下实例中,对红字部分如何修改,比如保存数据到:sheet(1)的f列30行起
Private Sub data_copy()
    Dim lcConnectionString, lcCommandText As String '定义两个字符串,用来输入命令参数
    Dim loADODBConnection As ADODB.Connection      '定义一个ADO的Connection对象变量
    Dim loADODBRecordset As ADODB.Recordset        '定义一个ADO的Recordset对象变量

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    '赋值给lcConnectionString,用于创建连接字符串
    lcConnectionString = "Driver={Microsoft Excel Driver (*.xls)}; " & _
                            "DBQ=" + ActiveWorkbook.FullName + ";" & _
                            "ReadOnly=True"
    '输入SQL查询语句,用来实现数据库的查询
    lcCommandText = "select * from [sheet1$] "

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    '创建对象
    Set loADODBConnection = CreateObject("ADODB.Connection")
    Set loADODBRecordset = CreateObject("ADODB.Recordset")
    '打开对象
    loADODBConnection.Open lcConnectionString     '根据连接字符串打开连接
    loADODBRecordset.Open lcCommandText, loADODBConnection, 3, 1, 1     '根据SQL查询语句,查询数据库

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    '添加新的工作表,将数据复制到新工作表中
'    Sheets.Add
    

    '定义单元格变量
    Dim r, f As Integer
    r = 15      '定义查询结果的起始行
    '复制字段名
    For f = 0 To loADODBRecordset.Fields.Count - 1
        Sheets(1).Cells(r, f + 1) = loADODBRecordset.Fields(f).Name
    Next
    '逐条复制字段值
    While Not loADODBRecordset.EOF
        r = r + 1
        For f = 0 To loADODBRecordset.Fields.Count - 1
            Sheets(1).Cells(r, f + 1) = loADODBRecordset.Fields(f).Value
        Next
        '记录指针后移
        loADODBRecordset.MoveNext
    Wend
    '关闭连接
    loADODBConnection.Close
End Sub
bmwzwd
2017-11-07 · TA获得超过378个赞
知道小有建树答主
回答量:531
采纳率:50%
帮助的人:133万
展开全部
读取数据库记录?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式