我正在尝试从MS Access to Excel工作表中提取一些数据,这是一种已经定义的模板。例如,我使用一个excel文件,比如一张名为Result的表(带有一些预定义的数据)作为源文件,然后将其复制到输出文件。然后,使用DoCmd.TransferSpreadsheet在输出文件中提取来自MS Access的一些OutputTable,并在结果表中明确提及提取。数据很好,但没有使用工作表Result,尽管使用与Ms Access的OutputTable相同的数据创建了一个名为Result1的额外工作表。
我使用的代码如下所述:
SourceFile = CurrentProject.Path & "Template" & "Input_Template.xlsx"
DestinFile = CurrentProject.Path & "Output" & "Output_" & sDateTimeStamp & ".xlsx"
FileCopy SourceFile, DestinFile
DoCmd.TransferSpreadsheet acExport, , "OutputTable", DestinFile, False, "Result"
我在我的系统上创建了这些文件夹Template(具有Input_Template.xlsx文件)和Output文件夹,它们位于放置数据库的同一路径下。
有人能告诉我是不是做错了,或者需要什么配置,或者我可能遗漏了什么吗。如有任何帮助,我们将不胜感激。
谢谢!!!蜂蜜
TransferSpreadsheet
不适合导出到预先格式化的模板。请改用Excel库中的CopyFromRecordset
方法。下面的示例将OutputTable
的内容转储到目标模板文件的"结果"电子表格中,以"B2"单元格开头。
Dim xlApp As Object
Dim xlWork As Object
Dim xlSheet As Object
Dim rsExportResults As Recordset
Set rsExportResults = CurrentDb.OpenRecordset("OutputTable")
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWork = xlApp.Workbooks.Open(DestinFile)
Set xlSheet = xlWork.Sheets("Result")
xlSheet.Range("B2").CopyFromRecordset rsExportResults