2009-12-04 3 views
16

Ich habe zwei Tabellen in meiner Access-Datenbank, die ich in Excel exportieren möchte.MS Access-Tabellen über VBA zu einem Excel-Arbeitsblatt in demselben Verzeichnis exportieren

Ich kann es tun, indem Sie die Tabelle öffnen und dann Datei-> Exportieren ... und dann wählen Sie das Format und geben Sie den Dateinamen ein.

Auf diese Weise muss der Benutzer jedoch tatsächlich den Namen eingeben, damit die Datei falsch benannt oder als falsches Format oder an der falschen Stelle gespeichert werden kann. Außerdem müssen die zwei Tabellen in zwei separate Arbeitsmappen exportiert werden.

Was ich tun möchte in der Lage sein, einen Schaltfläche in einem Formular machen, die eine Tabelle auf einem Arbeitsblatt und das andere zu einem anderen Arbeitsblatt, sowohl in der gleichen Excel-Arbeitsmappe automatisch exportiert.

Wenn es nicht möglich ist, sie in dieselbe Arbeitsmappe zu schreiben, ist das in Ordnung. Ich möchte nur, dass sie automatisch in das gleiche Verzeichnis exportiert werden, in dem meine Zugangsdatenbank gespeichert ist.

Wenn Sie wissen, wie man es macht, könnte ein zusätzlicher Vorteil darin bestehen, den Namen so anzupassen, dass er das Datum enthält. Auf diese Weise hätte das Verzeichnis auch historische Exporte. Irgendein Rat?

Antwort

32

Sie können VBA verwenden, um eine Access-Datenbanktabelle als Arbeitsblatt in einer Excel-Arbeitsmappe zu exportieren. Verwenden Sie die CurrentProject.Path-Eigenschaft, um den Pfad der Access-Datenbank zu erhalten.

Um die Excel-Arbeitsmappendatei mit dem aktuellen Datum zu benennen, verwenden Sie die Methode Format(Date, "yyyyMMdd").

Verwenden Sie zum Exportieren der Tabelle als Arbeitsblatt die Methode DoCmd.TransferSpreadsheet.

Beispiel:

Dim outputFileName As String 
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls" 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", outputFileName , True 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table2", outputFileName , True 

Dies wird sowohl Ausgang Tab.1 und Tab.2 in die gleiche Arbeitsbuch.

HTH

+0

Das hat gut funktioniert, aber wie kann ich es zwingen, in CurrentProject.Path zu exportieren? – Matt

+3

outputFileName = CurrentProject.Path & "\ Export_" & Format (Datum, "YYYYDDmm") & ".xls" – Fionnuala

+1

In dem angebotenen Code erzwingen Sie, dass die Datei im aktuellen Pfad gespeichert wird, indem Sie den Pfad beim Zuweisen des Wert für die Variable outputFileName. Stecke CurrentProject.Path zwischen das = und das "und setze a \ nach dem Zitat (CurrentProject.Path lässt den abschließenden Schrägstrich weg). –

-4

Für Leute, die dies über Suchmaschinen finden, brauchen Sie nicht VBA. Sie können nur:

1.) select the query or table with your mouse 
2.) click export data from the ribbon 
3.) click excel from the export subgroup 
4.) follow the wizard to select the output file and location. 
+0

Dies ist keine gültige Lösung wenn Sie dies als Endbenutzeranwendung/Berichterstattungssystem bereitstellen – MattE