DoCmd.TransferSpreadsheet 问题
DoCmd.TransferSpreadsheet Issue
我正在 Access 2013 中将查询导出到 Excel。这是我用于导出的语法
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qryDataExport", strExportPath, True
数据传输正常,但查询中的一个字段标题为 Player #
,当导出到 Excel 时,它变成 Player .
如何在导出时保持 #
完整?
您可以使用以下功能将内容导出到 .xlsx 文件,而无需处理 DoCmd.TransferSpreadsheet
的限制
Public Sub CustomExcelExport(QueryOrTableOrSQL As String, FileLocation As String)
Dim rs As DAO.Recordset
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
Set rs = CurrentDb.OpenRecordset(QueryOrTableOrSQL)
excelApp.Workbooks.Add
Dim colNo As Long: colNo = 1
Dim rowNo As Long: rowNo = 1
Dim fld As Variant
For Each fld In rs.Fields
excelApp.Cells(rowNo, colNo) = fld.Name
colNo = colNo + 1
Next fld
Do While Not rs.EOF
colNo = 1
rowNo = rowNo + 1
For Each fld In rs.Fields
excelApp.Cells(rowNo, colNo) = fld.Value
colNo = colNo + 1
Next fld
rs.MoveNext
Loop
excelApp.ActiveWorkbook.SaveAs FileLocation, 51 'xlOpenXMLWorkbook
excelApp.Quit
End Sub
称呼它:CustomExcelExport "qryDataExport", strExportPath
虽然 DoCmd.TransferSpreadsheet
可以重现问题,但请考虑保留查询格式的 DoCmd.OutputTo。前一种方法可能更侧重于电子表格格式。
事实上,DoCmd.OutputTo
看起来是外部数据的自动化版本 \ Excel 导出功能区方法(选择保留所有格式):
DoCmd.OutputTo acOutputQuery, "qryDataExport", acFormatXLSX, strExportPath
我正在 Access 2013 中将查询导出到 Excel。这是我用于导出的语法
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qryDataExport", strExportPath, True
数据传输正常,但查询中的一个字段标题为 Player #
,当导出到 Excel 时,它变成 Player .
如何在导出时保持 #
完整?
您可以使用以下功能将内容导出到 .xlsx 文件,而无需处理 DoCmd.TransferSpreadsheet
Public Sub CustomExcelExport(QueryOrTableOrSQL As String, FileLocation As String)
Dim rs As DAO.Recordset
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
Set rs = CurrentDb.OpenRecordset(QueryOrTableOrSQL)
excelApp.Workbooks.Add
Dim colNo As Long: colNo = 1
Dim rowNo As Long: rowNo = 1
Dim fld As Variant
For Each fld In rs.Fields
excelApp.Cells(rowNo, colNo) = fld.Name
colNo = colNo + 1
Next fld
Do While Not rs.EOF
colNo = 1
rowNo = rowNo + 1
For Each fld In rs.Fields
excelApp.Cells(rowNo, colNo) = fld.Value
colNo = colNo + 1
Next fld
rs.MoveNext
Loop
excelApp.ActiveWorkbook.SaveAs FileLocation, 51 'xlOpenXMLWorkbook
excelApp.Quit
End Sub
称呼它:CustomExcelExport "qryDataExport", strExportPath
虽然 DoCmd.TransferSpreadsheet
可以重现问题,但请考虑保留查询格式的 DoCmd.OutputTo。前一种方法可能更侧重于电子表格格式。
事实上,DoCmd.OutputTo
看起来是外部数据的自动化版本 \ Excel 导出功能区方法(选择保留所有格式):
DoCmd.OutputTo acOutputQuery, "qryDataExport", acFormatXLSX, strExportPath