Hallo Forum,
ich nutze aktuell folgenden Code für den Export einer Abfrage nach Excel.
DoCmd.TransferSpreadsheet acExport, 8, "Export_Verkauf_nach_Produktgruppen_qry", _
"O:\Logistik\Verkauf nach Produktgruppen\Verkauf.xls", True, _
"Verkauf_nach_Produkt"
Ich würde gern den Blattnamen flexibel gestalten über ein Eingabefeld oder bsp. das aktuelle jahr, zumindest nicht statisch wie jetzt. Aktuell passe ich manuell den Blattnamen an und das ist ein wenig nervig.
Hat jemand so etwas schon gemacht?
Danke im Voraus.
Rene
Zitat von: ReneB am Juni 25, 2019, 08:27:57
ich nutze aktuell folgenden Code für den Export einer Abfrage nach Excel.
[...]Ich würde gern den Blattnamen flexibel gestalten über ein Eingabefeld oder bsp. das aktuelle jahr, zumindest nicht statisch wie jetzt.
Ich fürchte, das geht nur über Excel-Automation. D.h. du erzeugst eine Excel-Instanz per Code, öffnest die Excel-Datei und benennst das Sheet um.
Der automatisch erzeugte Blattname richtet sich doch nach dem Namen der Abfrage, die man exportiert. Da könnte man doch auf einen Gedanken kommen ...
Hallo,
nein der Blattname wurde von mir festgelegt und leider fehlt mir die Idee:(. Ich schlage mich gerade mit dem Vorschlag von PhilS rum, aber bin da noch nicht weiter. Vieleicht kann ja jemand ein Beispiel posten, wenn verfügbar.
Danke.
Rene
Deine Logik kann ich nicht nachvollziehen.
Eine passende Abfrage zu erstellen ist einfacher und schneller (direkt zur Laufzeit in Access). Das relativ große Excelobjekt separat zu öffnen würde ich nur in Not und bei erheblicheren Anforderungen.
ZitatBeispiel posten
CreateQueryDef: Der Rest dazu in der Hilfe nachzulesen.
Hallo,
ich versteh nicht was du meinst. Der Export nach Excel erfolgt doch über eine Abfrage. Diese beinhaltet alle Daten die ich benötige. Ich öffne Excel auch gar nicht. Das Ergebnis der Abfrage wird exportiert in das Blatt "Verkauf_nach_Produkt", das wars. Ich hätte halt nur gern eine Inputbox oder ähnliches, wo ich diesen Blattnamen flexibel festlegen kann. Wir machen monatliche Auswertungen, nix grosses, aber es wäre super, wenn ich mich um die Benennung der Blätter nicht extra kümmern müsste.
Danke.
Rene
Hallo,
Zitatich versteh nicht was du meinst. Der Export nach Excel erfolgt doch über eine Abfrage
eben....
benenne die Abfrage entspr. dem gewünschten Blatt-Namen und setz diesen Abfragenamen bei DoCmd.TransferSpreadsheet ein...
Das kann entweder manuell geschehen oder Du schreibst ein paar Zeilen Code, der das bewerkstelligt.
Wo hakt es dabei?
Hallo,
erstmal danke für Deine Bemühungen, aber der Name der Abfrage wäre doch auch statisch, waß ergo zum gleichen Resultat führen würde, das Tabellenblatt hat immer den gleichen Namen.
Das hilft leider nicht weiter.
Grüsse
Rene
Was man einmal tut, kann man wieder tun.
Findet so ein Gedanke Eingang in Deine Vorstellungswelt?
????????????????
Sorry kein Eingang.
Bis dahin
Rene
Hallo,
dann nochmal eingänglicher:
Schreibe eine Sub oder Funktion, in der per Inputbox der Abfragename eingeben wird.
Erzeuge mit CreateQueryDef eine Abfrage mit den soeben eingebenden Namen und weise der den passenden SQL-String zu. (Den/die kannst Du per String in VBA gleich als Literal hinterlegen oder ihn aus einer gespeicherten Abfrage auslesen.)
Exportiere diese neue Abfrage dann mit TransferSpreadsheet nach Excel.
fertig.
Hallo an Alle,
ich habe das jetzt über Excel gelöst, da der Export eh dorthin erfolgt. Funktioniert alles super. Danke für die Anregungen.
Schöne Grüsse
Rene