DoCmd.TransferSpreadsheet问题

时间:2017-11-06 14:25:03

标签: vba ms-access access-vba ms-access-2013

我在Access 2013中将查询导出到Excel。这是我用于导出的语法

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qryDataExport", strExportPath, True

数据按原样传输,但查询中的一个字段标题为Player #,导出到Excel时会变为Player .

如何通过导出保持#完好无损?

2 个答案:

答案 0 :(得分:2)

虽然问题可以与DoCmd.TransferSpreadsheet重现,但请考虑保留查询格式的DoCmd.OutputTo。前一种方法可能更侧重于spreadseet格式化。

事实上,DoCmd.OutputTo看起来是外部数据\ Excel导出功能区方法的自动版本(选择保留所有格式):

DoCmd.OutputTo acOutputQuery, "qryDataExport", acFormatXLSX, strExportPath

答案 1 :(得分:1)

您可以使用以下函数将内容导出到.xlsx文件,而无需处理sudo ./usr/bin/spark-submit --master yarn --deploy-mode cluster MySparkCode.py 的限制

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