Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Export bestimmter Felder nach Excel via VBA

Begonnen von zoulhh, Oktober 19, 2023, 12:03:53

⏪ vorheriges - nächstes ⏩

zoulhh

Moin zusammen,

ist es möglich Daten nach Excel zu exportieren, wobei der Nutzer entscheidet, welche Felder exportiert werden?

Beispiel: Access Tabelle hat die Felder "Vorname", "Nachname", "Telefon", "Geburtsort"

Der Nutzer soll nun Daten in eine Excel Tabelle exportieren können, aber selber entscheiden, welche das sind. So möchte er beispielsweise nur "Vorname" und "Geburtsort" exportieren.

Geht so etwas?

Tausend Dank im voraus.

Mick

Beaker s.a.

Hallo Mick,

Erstelle ein Listfeld mit dem Herkunftstyp "Feldliste" und Mehrfachauswahl.
Dann kannst mit einer Schleife durch die ausgewählten (SelectedItems) Felder
laufen und dabei eine Abfrage zusammensetzen, die du dann nach Excel exportieren
kannst.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

zoulhh

Moin Ekkehard,

vielen Dank. Das ist ein guter Ansatz. Könntest Du mir sagen, wie so eine Schleife aussieht? Nur ein kleines Beispiel wäre total nett.

Vielen, vielen Dank.

Mick

Beaker s.a.

Dim varItem As Variant
For Each varItem In Me.DeineListe.ItemsSelected
   'Mach was mit dem Wert einer beliebigen Spalte
Next
Schau auch in der OH nach dieser Eigenschaft von Listfeldern.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

zoulhh

Danke für Deine Antwort. Wie ich die Listenfelder auslese weiss ich. Nur nicht, wie ich per VBA daraus eine Abfrage erzeuge. Bisher hatte ich nur Abfragen angelegt und daraus eine Excel Tabelle erzeugt. Das ist zu unflexibel. So etwa:

DoCmd.OutputTo acOutputQuery, "Meine_Abfrage", acFormatXLSX, "g:\public\meineliste.xlsx"
Ich weiss nur nicht, wie ich diese Abfrage per VBA erstelle.

LG

Mick

Beaker s.a.

Erstelle in der Schleife eine kommagetrennte Feldliste und setze
damit einen kompletten SQL-String zusammen.
sSQL = "SELECT " & sFelder & " FROM DeineTabelle"
'wenn benötigt noch WHERE-Klausel dranhängen
Damit ersetzt du in der (schon gespeicherten) Abfrage den vorhandenen
SQL-String durch den neuen
qdf.SQL = sSQLAlle Variablen und Objekte natürlich vorher deklarieren und initialisieren.
Was auch immer hilfreich sein kann ist das Betätigen der Taste F1.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)