Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

把多个查询结果导出到同一个Excel表的代码

yaokai  发表于:2019-07-23 15:57:36  
复制

请求帮助,把多个查询结果一键导出到同一个Excel文件不同工作表的代码,谢谢啦!

目前这个只能导出一个查询结果。DoCmd.OutputTo acOutputQuery, "查询名称", "Excel97-Excel2003Workbook(*.xls)", "新EXCEL表的名称.xls", True, "", , acExportQualityPrint

我目前是在一个主窗体,通过查询(4个条件查询)将数据显示在子窗体中,现在想将查询结果导出到一个excel文件中,sheet1.2.3.4最好能同时改名。

 

Top
西出阳关无故人 发表于:2019-07-24 09:29:22

例如:

Private Sub Command16_Click()

    On Error GoTo er
    Dim xlApp As New Excel.Application'引用excel
    Dim xlBk As Excel.Workbook
    Dim xlSt As Excel.Worksheet
    Const tbs As String = "表1,表2,表3"   '这里更改为你要要导出的表或查询的名称集,用英文逗号分隔
    Dim ary
    Dim k, m
    Dim Rec As ADODB.Recordset '引用ado
    Set xlBk = xlApp.Workbooks.Add
    xlApp.Visible = True
    ary = Split(tbs, ",")
    For k = 0 To UBound(ary)
        Set Rec = New ADODB.Recordset
        Rec.Open "SELECT * FROM " & ary(k), LCn, adOpenStatic, adLockReadOnly
        '  If Rec.RecordCount > 0 Then
        Set xlSt = xlBk.Worksheets.Add(after:=xlBk.Worksheets(xlBk.Worksheets.count))
        With xlSt
            For m = 1 To Rec.Fields.count
                .Cells(1, m) = Rec.Fields(m - 1).Name
            Next m
            .Cells(2, 1).CopyFromRecordset Rec
            .Name = ary(k)
        End With
        '  End If
    Next k
    Exit Sub
er:
    '’...
End Sub


yaokai 发表于:2019-07-26 23:05:14
@西出阳关无故人,非常感谢您的回答。按照提示,修改了查询名称,添加了引用,结果导出的是空表,不知道哪个地方还没有设置对。我现在将几个查询into到几个临时表中,按照另一位大侠的提示,可以导出,就是没法修稿工作表的名称。

总记录:2篇  页次:1/1 9 1 :