裑躰哙蔂菿 2023-02-23 21:22 采纳率: 81.5%
浏览 6
已结题

access如何保存为多个excel表?

我从多张表汇总运算后(运算后的表命名为dbb)在一个大的accdb里面,这个表有250万行,但是结果需要导出到excel里面。需求是导出1个文件,里面3个sheet,带标题一起导出,(不含标题)第1~1000000行在sheet1,第1000001~2000000行在sheet2,剩下的在sheet3。请问,是否可通过代码一次性完成?还有就是,为了提升效率,通过运算得到dbb表的过程只运算1次。

  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-02-23 21:32
    关注

    该回答引用ChatGPT

    可以通过SQL语句和VBA代码结合实现需求。

    首先,运算得到dbb表的过程只需要运算1次,可以将这个过程写成一个SQL查询或者存储过程,方便后续的调用。假设这个查询的名称为query1,那么可以在VBA中使用以下代码来执行查询:

    
    Dim db As DAO.Database
    Set db = CurrentDb()
    db.Execute "query1"
    
    

    接下来,需要将dbb表的数据导出到Excel文件中的三个sheet中。可以使用VBA中的ADODB库来连接Access数据库和Excel文件,将dbb表中的数据查询出来,再分别写入到Excel文件的不同sheet中。具体代码如下:

    '连接Access数据库和Excel文件
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\access.accdb;Persist Security Info=False;"
    cn.Open
    
    '查询dbb表中的数据
    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM dbb", cn
    
    '导出数据到Excel文件
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet1 As Excel.Worksheet
    Dim xlSheet2 As Excel.Worksheet
    Dim xlSheet3 As Excel.Worksheet
    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet1 = xlBook.Worksheets(1)
    Set xlSheet2 = xlBook.Worksheets(2)
    Set xlSheet3 = xlBook.Worksheets(3)
    xlSheet1.Name = "Sheet1"
    xlSheet2.Name = "Sheet2"
    xlSheet3.Name = "Sheet3"
    
    Dim i As Long
    For i = 1 To rs.RecordCount
        '根据行号写入到不同的sheet中
        If i <= 1000000 Then
            xlSheet1.Cells(i, 1).CopyFromRecordset rs
        ElseIf i <= 2000000 Then
            xlSheet2.Cells(i - 1000000, 1).CopyFromRecordset rs
        Else
            xlSheet3.Cells(i - 2000000, 1).CopyFromRecordset rs
        End If
        rs.MoveNext
    Next i
    
    '保存Excel文件
    xlBook.SaveAs "C:\path\to\output.xlsx"
    xlBook.Close False
    xlApp.Quit
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备