Access Unterformular in neue Exel Tabelle kopieren

Guten Morgen alle miteinander,

kann mir mal jemand helfen?

Ich habe ein Access Formular mit einem Unterformular. In dieses Unterformular werden Daten aus einer Abfrage eingefügt.
In dem (Über)Formular is eine Kombobox, womit man das Jahr auswählen kann und daraufhin werden in dem Unterformular nur die Daten aus dem entsprechenden Jahr angezeigt.

Jetzt habe ich noch einen Button. Der soll diese Daten (nur für das entsprechende Jahr) in eine Excel Tabelle kopieren. Aber es soll eine neue Tabelle erstellt werden, so wie bei dem Menüpunkt Extras -> Office-Verknüpfungen -> in Excel analysieren.

Das is dann auch mein Problem. Wenn ich es mit
DoCmd.OutputTo acQuery oder
DoCmd.TransferSpreadsheet versuche, will er immer einen Tabellennamen haben und will auch die Tabelle immer gleich speichern.
Sie soll aber auch noch nicht gespeichert werden. Das wird dann alles manuel gemacht.

Hoffe es weiß jemand rat, weil Access kann ich mich irgendwie nicht anfreunden… :frowning:

MFG Uschi

Guten Morgen Uschi,

Jetzt habe ich noch einen Button. Der soll diese Daten (nur
für das entsprechende Jahr) in eine Excel Tabelle kopieren.

ok, wenn der Button entsprechenden Code beinhaltet, kein Problem

Aber es soll eine neue Tabelle erstellt werden, so wie bei dem
Menüpunkt Extras -> Office-Verknüpfungen -> in Excel
analysieren.

also eine neue Excel-Tabelle?

Das is dann auch mein Problem. Wenn ich es mit
DoCmd.OutputTo acQuery oder
DoCmd.TransferSpreadsheet versuche, will er immer einen
Tabellennamen haben und will auch die Tabelle immer gleich
speichern.

DoCmd.TransferSpreadsheet wäre da die richtige Wahl.

die Hilfe sagt:
Die TransferSpreadsheet-Methode führt die TransferArbeitsblatt-Aktion in Visual Basic aus.

Ausdruck.TransferSpreadsheet(Transfertyp, Dateiformat, Tabellenname, Dateiname, BesitztFeldnamen, Bereich, UseOA)

Tabellenname Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen einer Microsoft Access-Tabelle angibt, die zum Importieren, Exportieren oder Verknüpfen von Kalkulationsdaten verwendet werden soll, oder die Microsoft Access-Auswahlabfrage, deren Ergebnisse in eine Kalkulationstabelle exportiert werden sollen.

D.h. du kannst auch einfach die Abfrage an Stelle der TABELLE verwenden.

Es könnte dann so aussehen:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, DeineAbfragedesUFOs, DateinamefürExceltabelle, True

Sie soll aber auch noch nicht gespeichert werden. Das wird
dann alles manuel gemacht.

??? wie nicht speichern? wo sollen die Daten denn hin, wenn nicht in eine gespeicherte Datei?

Hoffe es weiß jemand rat, weil Access kann ich mich irgendwie
nicht anfreunden… :frowning:

einfach mal mehr die Taste F1 nutzen und lesen … :smile:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Guten Morgen Netwolf,

ich komm trotzdem noch nich damit klar - auch nicht mit F1. Davon müsste es schon nen Version für Dummies geben…

Folgende Versionen von dem Befehl:

  1. mit Dateiname:

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, „aKostenjePSP“, „KostenjePSP_Element“, True

nichts passiert

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "aKostenjePSP", "KostenjePSP\_Element", False

nichts passiert

  1. ohne Dateiname - weil ich will ja ne ganz neue Tabelle, die nicht schon irgendwo liegt… und unter F1 steht ja schließlich - optional…

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, „aKostenjePSP“, False

Dateiname fehlt

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "aKostenjePSP", , True

Dateiname fehlt.

Und zu deiner Frage, ob die Tabelle nicht gespeichert werden soll:
Der Benutzer soll die Tabelle dann selber speichern und den Speicherort selber bestimmen. Das soll nicht automatisch passieren.

MFG uschi

noch ein Nachtrag:

Ich filter die Daten in dem einen Formular nach dem Jahr. Angezeigt werden Sie im zugehörigen Unterformular.
D.h. wenn ich die Abfrage nach Excel kopiere, wird der Filter ja nicht mit beachtet, oder?

wenn dein Unterformular (UFO) auf einer Abfrage basiert, die den Filter beinhaltet, dann - logischer Weise - doch.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Guten Morgen uschi,

ich komm trotzdem noch nich damit klar - auch nicht mit F1.
Davon müsste es schon nen Version für Dummies geben…

oder den Lehrer direkt daneben :smile:

Folgende Versionen von dem Befehl:

  1. mit Dateiname:

DoCmd.TransferSpreadsheet acExport,
acSpreadsheetTypeExcel9, „aKostenjePSP“,
„KostenjePSP_Element“, True

nichts passiert

logisch, du mußt dem dummen Access genau sagen wohin die Datei gespeichert werden soll und wie der Dateiname (mit Endung) ist:

C:\Daten_für_Test\KostenjePSP_Element.xls

Und zu deiner Frage, ob die Tabelle nicht gespeichert werden
soll:
Der Benutzer soll die Tabelle dann selber speichern und den
Speicherort selber bestimmen. Das soll nicht automatisch
passieren.

ok, dann bestimme den Speicherort schon in Access.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hi,

nagut, wenn ich also den ganzen Pfad angebe, gehts…

Und anders gehts nicht? - ohne speichern? - einfach nur Excel öffnen und die Tabelle anzeigen?

…ein Pfad im Makro anzugeben ist echt ungünstig, weil einige Benutzer nen anderen Laufwerksbuchstaben haben…

und einfach nur den Dateinamen oder \ davor will Access ja leider nicht…

Hi,

nagut, wenn ich also den ganzen Pfad angebe, gehts…

sag ich und die Access-Hilfe doch :smile:

Und anders gehts nicht? - ohne speichern? - einfach nur Excel
öffnen und die Tabelle anzeigen?

Access exportiert in eine Datei, die - logischer Weise - vorher irgendwo angelegt werden muß.

Export in ein Programm wie z.B. Excel geht leider nicht. IMHO gibt es kein Programm auf der Welt, das direkt in ein Programm exportieren kann. (PDF-Drucker-Programme mal ausgenommen :smile:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

am Ende ist es doch so, wie ich es vermutet habe,
es werden die Daten aus der Abfrage genauso nach Excel kopiert, wie sie in der Abfrage sind.

Ich habe aber in dem Formular extra ein Kombinationsfeld, wo man das Jahr auswählt, was man benötigt… und es sollen dann nur die Daten aus dem ausgewählten Jahr übertragen werden…

Wie geht das?

MFG Uschi

Hallo Uschi,

am Ende ist es doch so, wie ich es vermutet habe,
es werden die Daten aus der Abfrage genauso nach Excel
kopiert, wie sie in der Abfrage sind.

richtig so

Ich habe aber in dem Formular extra ein Kombinationsfeld, wo
man das Jahr auswählt, was man benötigt… und es sollen dann
nur die Daten aus dem ausgewählten Jahr übertragen werden…

also greift deine Abfrage auf dieses Komifeld zu und bildet daraus die Ergebnisliste?

Wie geht das?

in dem du in der Abfrage auch die Daten des Kombinationsfelds auswertest:

Also unter Feld: dein Datumsfeld in der Tabelle was ausgewertet werden soll.
Bei Kriterien dann das Kombinationsfeld aus dem Formular eintragen.

Beim Verlassen des Kombinationsfelds dann noch ein Formularrefresh ausführen und du hast eine Liste wie du sie benötigst für dein Excel.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hey Wolfgang,

erstma danke für deine Geduld :wink:

also greift deine Abfrage auf dieses Komifeld zu und bildet
daraus die Ergebnisliste?

ja, genau.

Wie geht das?

in dem du in der Abfrage auch die Daten des Kombinationsfelds
auswertest:

Also unter Feld: dein Datumsfeld in der Tabelle was
ausgewertet werden soll.
Bei Kriterien dann das Kombinationsfeld aus dem Formular
eintragen.

Beim Verlassen des Kombinationsfelds dann noch ein
Formularrefresh ausführen und du hast eine Liste wie du sie
benötigst für dein Excel.

Jetzt fragts beim Öffnen von dem Formular nach dem Jahr…
Das soll aber erst durch das Kombifeld ausgewählt werden.

Da dacht ich mir, biste schlau und machst einfach ne neue Abfrage. Da wird das Formular mit den Daten der 1. Abfrage gefüllt und mit dem Jahr als Kriterium werden die Daten der 2 Abfrage dann nach Excel exportiert - da Fragts aber auch den Parameter fürs Jahr ab…

Hey Uschi,

Jetzt fragts beim Öffnen von dem Formular nach dem Jahr…
Das soll aber erst durch das Kombifeld ausgewählt werden.

also hast du „Blödsinn“ bei Kriterien eingetragen.

Da dacht ich mir, biste schlau und machst einfach ne neue
Abfrage. Da wird das Formular mit den Daten der 1. Abfrage
gefüllt und mit dem Jahr als Kriterium werden die Daten der 2
Abfrage dann nach Excel exportiert - da Fragts aber auch den
Parameter fürs Jahr ab…

also hast du „Blödsinn“ bei Kriterien der ersten Abfrage eingetragen.
Was du da stehen hast, verschweigst du uns leider :frowning:

Auch wäre mal interessant zu wissen, wie dein Kombinationsfeld heißt.
Dann könnte man dir direkter helfen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)