Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ReneB am Juni 25, 2019, 08:27:57

Titel: abfrage export excel blattname flexibel
Beitrag von: ReneB am Juni 25, 2019, 08:27:57
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
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: PhilS am Juni 25, 2019, 10:12:20
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.
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ebs17 am Juni 25, 2019, 12:50:54
Der automatisch erzeugte Blattname richtet sich doch nach dem Namen der Abfrage, die man exportiert. Da könnte man doch auf einen Gedanken kommen ...
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ReneB am Juni 25, 2019, 13:02:50
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
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ebs17 am Juni 25, 2019, 17:24:58
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.
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ReneB am Juni 26, 2019, 06:59:00
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
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: DF6GL am Juni 26, 2019, 08:29:36
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?

Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ReneB am Juni 26, 2019, 11:31:24
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
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ebs17 am Juni 26, 2019, 11:55:48
Was man einmal tut, kann man wieder tun.
Findet so ein Gedanke Eingang in Deine Vorstellungswelt?
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ReneB am Juni 26, 2019, 13:46:18
????????????????
Sorry kein Eingang.

Bis dahin

Rene
Titel: Re: abfrage export excel blattname flexibel
Beitrag von: DF6GL am Juni 26, 2019, 14:01:45
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.


Titel: Re: abfrage export excel blattname flexibel
Beitrag von: ReneB am Juli 01, 2019, 11:11:07
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