如何解决Microsoft Access 导出到 Excel
是否可以从 microsoft access 导出到 microsoft excel 中,但是 ledt 上的列和行会下降?我知道默认导出是相反的。
数据正被提供给第三者,但他们希望采用上述格式
喜欢:
第 1 列 |第 1 行第2行
第 2 列 |第 1 行第2行
第 3 列 |第 1 行第2行
解决方法
要么将表作为记录集打开并循环多次填充临时表;然后导出这个。
或者将表格原样导出到 Excel,然后调用 Transpose 来“旋转”填充的范围:
,如果您确实必须在 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 举报,一经查实,本站将立刻删除。