【问题标题】:How do I export all records from a form to an Excel worksheet如何将表单中的所有记录导出到 Excel 工作表
【发布时间】:2015-08-17 23:08:50
【问题描述】:

编辑:没关系,我找到了一种方法。我会将我的答案作为单独的帖子发布。

我有一个包含多条记录的连续表格。我希望能够将表单上的所有记录信息导出到名为“RawData”的 Excel 工作表中,其中 Excel 文件位于某个静态位置。

我尝试了 Docmd.OutputTo,但它用包含表单记录的单个工作表替换了所有内容,并且 Docmd.TransferSpreadsheet 似乎只在单元格 A1 中导入文本“F1”(不知道为什么)。也许我用错了?

【问题讨论】:

    标签: vba export-to-excel ms-access-2013


    【解决方案1】:

    您基本上必须打开 Excel 并一个一个地填写每个单元格。或者这是我至少知道该怎么做的唯一方法……原始代码来自here,但我已经修改了它,因为原始代码只导出了一条记录。

    Private Sub btnExportExcel_Click()
    Dim appExcel As Object
    Dim wkbWorkBook As Object
    Dim wksSheet As Object
    
    ' creates Excel application
    Set appExcel = CreateObject("Excel.Application")
    ' opens workbook for output
    Set wkbWorkBook = appExcel.Workbooks.Open("C:\Users\mikec\Desktop\Book1.xlsx")
    ' get reference to sheet for output
    Set wksSheet = wkbWorkBook.Worksheets("RawData")
    
    
    ' for each record, output all fields in the record
    Dim rs As Recordset
    Dim row As Integer: row = 1
    Dim col As Integer: col = 1
    Set rs = Me.Form.Recordset
    If rs.RecordCount > 0 Then
        rs.MoveFirst
        Do While Not rs.EOF
            Dim fld As Field
            For Each fld In Me.Recordset.Fields
                wksSheet.Cells(row, col) = fld
                col = col + 1
            Next fld
            rs.MoveNext
            col = 1
            row = row + 1
        Loop
    End If
    
    ' save and quit
    wkbWorkBook.Save
    appExcel.Quit
    
    Set wksSheet = Nothing
    Set wkbWorkBook = Nothing
    Set appExcel = Nothing
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多