微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Microsoft Access 导出到 Excel

如何解决Microsoft Access 导出到 Excel

是否可以从 microsoft access 导出到 microsoft excel 中,但是 ledt 上的列和行会下降?我知道认导出是相反的。

数据正被提供给第三者,但他们希望采用上述格式

喜欢:

第 1 列 |第 1 行第2行

第 2 列 |第 1 行第2行

第 3 列 |第 1 行第2行

解决方法

要么将表作为记录集打开并循环多次填充临时表;然后导出这个。

或者将表格原样导出到 Excel,然后调用 Transpose 来“旋转”填充的范围:

TRANSPOSE function

,

如果您确实必须在 Access 中执行此操作而不是在 Excel 中使用 TRANSPOSE,您可能需要使用一些 VBA 来循环记录集中的字段。这样的事情应该给你一个想法(你需要设置对 Excel 对象库的引用才能使用早期绑定):


Sub sExportExcelTransposed()
    On Error GoTo E_Handle
    Dim db As DAO.Database
    Dim rsData As DAO.Recordset
    Dim objXL As New Excel.Application
    Dim objXLBook As Excel.Workbook
    Dim objXLSheet As Excel.Worksheet
    Dim strXLFile As String
    Dim lngRow As Long
    Dim lngCol As Long
    Set db = CurrentDb
    Set rsData = db.OpenRecordset("SELECT * FROM dbo_svr_Country ORDER BY CountryName ASC;",dbOpenDynaset,dbSeeChanges)
    If Not (rsData.BOF And rsData.EOF) Then
        strXLFile = "J:\downloads\transpose.xlsx"
        If Len(Dir(strXLFile)) > 0 Then Kill strXLFile
        Set objXLBook = objXL.Workbooks.Add
        Set objXLSheet = objXLBook.Worksheets(1)
        lngCol = 1
        For lngRow = 1 To rsData.Fields.Count
            objXLSheet.Cells(lngRow,lngCol) = rsData.Fields(lngRow - 1).name
        Next lngRow
        lngCol = 2
        Do
            For lngRow = 1 To rsData.Fields.Count
                objXLSheet.Cells(lngRow,lngCol) = rsData.Fields(lngRow - 1).Value
            Next lngRow
            lngCol = lngCol + 1
            rsData.MoveNext
        Loop Until rsData.EOF
        objXLBook.SaveAs strXLFile
    End If
sExit:
    On Error Resume Next
    rsData.Close
    Set rsData = Nothing
    Set db = Nothing
    Set objXLSheet = Nothing
    objXLBook.Close
    Set objXLBook = Nothing
    objXL.Quit
    Set objXL = Nothing
    Exit Sub
E_Handle:
    MsgBox Err.Description & vbCrLf & vbCrLf & "sExportExcelTransposed",vbOKOnly + vbCritical,"Error: " & Err.Number
    Resume sExit
End Sub

问候,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。