Supportnet / Forum / Datenbanken
Per Klick ein Excel-Export der DB
Frage
Hallo Newsgroup...
kann mir bitte einer verraten, wie ein VB-Code für einen Datenbank-Export nach Excel aussehen sollte??
Ich möchte nach Klick auf einen Button in einem Formular die komplette Datenbank (bzw. Abfragen) in eine Excel-Datei exportieren und diese auch sofort starten und in den Vordergrund holen.
Thx für die Antworten :-)
Gruß frokzee
Antwort 1 von Marie
ganz einfach:
DoCmd.OutputTo acQuery, "Name Deiner Abfrage", "MicrosoftExcel(*.xls)", "Pfad und Dateiname der Exceldatei.xls", true
DoCmd.OutputTo acQuery, "Name Deiner Abfrage", "MicrosoftExcel(*.xls)", "Pfad und Dateiname der Exceldatei.xls", true
Antwort 2 von Roadrunner90
oder auch mit:
DoCmd.TrasferSpreadsheet acExport, acSpreadsheetTypeExcel9, "deineTabelle", "ExcelName"
aber auch das geht nur für EINE Tabelle/Abfrage für die ganze DB musst du dir halt eine Schleife drumherum bauen
DoCmd.TrasferSpreadsheet acExport, acSpreadsheetTypeExcel9, "deineTabelle", "ExcelName"
aber auch das geht nur für EINE Tabelle/Abfrage für die ganze DB musst du dir halt eine Schleife drumherum bauen
Antwort 3 von Marie
zum Beispiel so für alle Abfragen:
Dim vQD as DAO.Querydef
Dim vCurDB as DAO.Database
Set vCurDB = CurrentDB()
for each vQD in VCurDB.QueryDefs
DoCmd.OutputTo acQuery, vQD.Name, "MicrosoftExcel(*.xls)", "Pfad und Dateiname der Exceldatei.xls", false
next vQD
ganz unbewaffnet, weil ich hab das grad so ungetestet hingeschrieben. Für alle Tabellen natürlich entsprechend. Nur darfste dann natürlich nicht true schreiben, sonst öffnet der nach jedem Export Excel, was ja dann nicht sinnvoll ist.
Und vergiss nicht close und nothing
Gruß Marie
Dim vQD as DAO.Querydef
Dim vCurDB as DAO.Database
Set vCurDB = CurrentDB()
for each vQD in VCurDB.QueryDefs
DoCmd.OutputTo acQuery, vQD.Name, "MicrosoftExcel(*.xls)", "Pfad und Dateiname der Exceldatei.xls", false
next vQD
ganz unbewaffnet, weil ich hab das grad so ungetestet hingeschrieben. Für alle Tabellen natürlich entsprechend. Nur darfste dann natürlich nicht true schreiben, sonst öffnet der nach jedem Export Excel, was ja dann nicht sinnvoll ist.
Und vergiss nicht close und nothing
Gruß Marie
Antwort 4 von Marie
nö, halt Stop, bei Tabellen musste natürlich dann schreiben:
Dim vTable as DAO.Tabledef
Dim vCurDB as DAO.Database
Set vCurDB = CurrentDB()
for each vTable in VCurDB.TableDefs
if left$(vTable.Name,4) <> "MSys" then
DoCmd.OutputTo acQuery, vTable.Name, "MicrosoftExcel(*.xls)", "Pfad und Dateiname der Exceldatei.xls", false
end if
next vTable
Dim vTable as DAO.Tabledef
Dim vCurDB as DAO.Database
Set vCurDB = CurrentDB()
for each vTable in VCurDB.TableDefs
if left$(vTable.Name,4) <> "MSys" then
DoCmd.OutputTo acQuery, vTable.Name, "MicrosoftExcel(*.xls)", "Pfad und Dateiname der Exceldatei.xls", false
end if
next vTable
Antwort 5 von Marie
äh, natürllich dann nicht
DoCmd.OutputTo acQuery,
sondern
DoCmd.OutputTo acTable,
DoCmd.OutputTo acQuery,
sondern
DoCmd.OutputTo acTable,
Antwort 6 von frokzee
super... die OutputTo Methode habe ich gesucht :-)
besten dank
Gruß frokzee
besten dank
Gruß frokzee
Antwort 7 von Marie
na dann viel Spaß :-)

