2016-07-28 2 views
0

Ich versuche, einige Daten aus MS Access in Excel-Blatt extrahiert, die eine Art bereits definierte Vorlage ist. Zum Beispiel verwende ich eine Excel-Datei mit einem Blatt namens Ergebnis (mit einigen vordefinierten Daten) als eine Quelldatei und dann kopiere ich das gleiche in eine Ausgabedatei. Dann wird eine OutputTable aus MS Access in der Ausgabedatei extrahiert, wobei DoCmd.TransferSpreadsheet mit explizit erwähnt verwendet wird, um im Ergebnisblatt extrahiert zu werden. Die Daten kommen gut, aber das Blatt Ergebnis wird nicht verwendet, obwohl ein zusätzliches Blatt mit dem Namen Result1 mit denselben Daten wie OutputTable von Ms Access erstellt wird.Daten extrahiert von Acces to Excel wird automatisch zu mehr Blatt als das definierte Blatt

-Code i bin mit unten erwähnt:

SourceFile = CurrentProject.Path & "\Template\" & "Input_Template.xlsx" 
    DestinFile = CurrentProject.Path & "\Output\" & "Output_" & sDateTimeStamp & ".xlsx" 
    FileCopy SourceFile, DestinFile 
    DoCmd.TransferSpreadsheet acExport, , "OutputTable", DestinFile, False, "Result" 

Ich habe diese Ordner Vorlage (mit Input_Template.xlsx-Datei) und Ausgabeordner auf meinem System unter demselben Pfad erstellt, in dem die Datenbank gespeichert ist.

Könnte jemand sagen, ob ich es falsch mache oder eine Konfiguration benötigt wird oder mir etwas fehlt? Jede Hilfe würde sehr geschätzt werden.

Danke !!! Honig

+0

Angeblich soll - das letzte Argument „Ergebnis“ nicht verwendet werden sollten, wenn Sie exportieren - es soll ein Fehler geben, so dass ich, bin nicht sicher, wie es für Sie funktioniert auch so, wie es – dbmitch

Antwort

1

TransferSpreadsheet ist nicht für den Export in vorformatierte Vorlage geeignet. Verwenden Sie stattdessen die Methode CopyFromRecordset aus der Excel-Bibliothek. Im folgenden Beispiel wird der Inhalt von OutputTable in die Tabelle "Ergebnis" der Zielvorlagendatei, die die Zelle "B2" startet, abgelegt.

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 
+0

Dank Sergey tut. Dies ist einer der Ansatz, um die Art und Weise m versuchen hier zu extrahieren. Aber es gab ein Projekt, an dem ich vorher gearbeitet habe und dieser Transfer war gut. Ich bin mir nicht sicher, was ich hier vermisse. – honey

Verwandte Themen