Access VBA gefilterter Bericht in XML-Datei exportieren
Hallo VBA'ler,
irgendwie tauchen die Probleme immer da auf, wo man sie nicht erwartet.
Bestimmt kann mir aber jemand von Euch helfen.
Folgendes Szenario:
Ich habe in meiner Datenbank ein Formular. Mit den Eingabewerten im Formular wird ein Bericht entsprechend gefiltert.
Ich habe nun vor mir den gefilterten Bericht, welchen ich jetzt über die Menüleiste EXTERNE DATEN - XML-DATEI exportiere.
Nun habe ich eine XML-Datei nur mit den gefilterten Daten. Soweit alles wunderbar.
Jetzt möchte ich aber den Export nicht manuell sondern per Code steuern, und das ist nun auch das Problem.
Ich habe es mit der ExportXML-Methode probiert. Das geht zwar, dann nimmt er aber alle Datensätze mit in die Datei.
Habe es dann versucht einzugrenzen mit der Übergabe von Kriterien an WhereCondition, krieg ich aber auch nicht hin.
Abschließend nochmal die Frage:
Wie bekomme ich per VBA nur die gefilterten Datensätze des Berichts in meine XML-Datei.
Gruß Rala11
irgendwie tauchen die Probleme immer da auf, wo man sie nicht erwartet.
Bestimmt kann mir aber jemand von Euch helfen.
Folgendes Szenario:
Ich habe in meiner Datenbank ein Formular. Mit den Eingabewerten im Formular wird ein Bericht entsprechend gefiltert.
Ich habe nun vor mir den gefilterten Bericht, welchen ich jetzt über die Menüleiste EXTERNE DATEN - XML-DATEI exportiere.
Nun habe ich eine XML-Datei nur mit den gefilterten Daten. Soweit alles wunderbar.
Jetzt möchte ich aber den Export nicht manuell sondern per Code steuern, und das ist nun auch das Problem.
Ich habe es mit der ExportXML-Methode probiert. Das geht zwar, dann nimmt er aber alle Datensätze mit in die Datei.
Habe es dann versucht einzugrenzen mit der Übergabe von Kriterien an WhereCondition, krieg ich aber auch nicht hin.
Abschließend nochmal die Frage:
Wie bekomme ich per VBA nur die gefilterten Datensätze des Berichts in meine XML-Datei.
Gruß Rala11
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214997
Url: https://administrator.de/forum/access-vba-gefilterter-bericht-in-xml-datei-exportieren-214997.html
Ausgedruckt am: 15.04.2025 um 04:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo Rala11, Willkommen im Forum!
Dies erreichst du folgendermaßen:
Bei diesem Beispiel existiert in dem Bericht ein Datenfeld namens PLZ, wobei mit diesem Filter hier alle Einträge selektiert werden bei denen die PLZ mit 2 anfängt. Diesen Filter musst du natürlich an deine Gegebenheiten anpassen.
In der Variablen XMLAUSGABE wird der Ausgabepfad für die XML-Datei festgelegt. In der Variablen MEINREPORTNAME gibst du den Namen deines Berichts an.
Wenn du Probleme mit dem Filter hast, frage einfach nochmal welche Filterung du erreichen willst dann helfe ich Dir dabei diesen zusammenzusetzen. Diesen kann man ja auch aus Daten die in einem Formular eingegeben wurden zusammensetzen.
Grüße Uwe
Dies erreichst du folgendermaßen:
Bei diesem Beispiel existiert in dem Bericht ein Datenfeld namens PLZ, wobei mit diesem Filter hier alle Einträge selektiert werden bei denen die PLZ mit 2 anfängt. Diesen Filter musst du natürlich an deine Gegebenheiten anpassen.
In der Variablen XMLAUSGABE wird der Ausgabepfad für die XML-Datei festgelegt. In der Variablen MEINREPORTNAME gibst du den Namen deines Berichts an.
MEINREPORTNAME = "Kundenbericht"
REPORTFILTER = "[PLZ] like '2*'"
XMLAUSGABE = "E:\mydata.xml"
'Öffne den gefilterten Bericht
DoCmd.OpenReport REPORTNAME:=MEINREPORTNAME, View:=acViewReport, WhereCondition:=REPORTFILTER
'Rufe die Export-Funktion auf um den Bericht als XML zu exportieren
Application.ExportXML ObjectType:=acExportReport, DataSource:="Kundenbericht", DataTarget:=XMLAUSGABE
'Zur Demo eine Meldung anzeigen wenn der Export fertig ist.
msgbox "Export ist erfolgt! Zu finden unter '" & XMLAUSGABE & "'"
'Wenn benötigt folgende Zeile auskommentieren. Damit kann der Bericht gleich wieder geschlossen werden
'DoCmd.Close acReport, REPORTNAME
Grüße Uwe
Zitat von @Rala11:
Gibt es eine Möglichkeit die im Formular eingegebenen Kriterien "abzugreifen" und wie hier im Bsp. an REPORTFILTER
zu übergeben?
klar geht das, dazu greifst du im Code auf die Felder im Formular zu und baust damit den Filter zusammen.Gibt es eine Möglichkeit die im Formular eingegebenen Kriterien "abzugreifen" und wie hier im Bsp. an REPORTFILTER
zu übergeben?
Ein Beispiel. Die Felder wie "Me.AuftragsNummerVON.Value etc. sind die Feldnamen in deinem Formular und musst du an deine Umgebung anpassen.
Ich gehe jetzt davon aus das der Code in dem entsprechenden Formular platziert wird.
REPORTFILTER = "([Datum] BETWEEN #" & Me.datumVON & "# AND #" & Me.DatumBIS & "#) AND ([Auftrag-Nr] BETWEEN " & Me.AuftragsNummerVON.Value & " AND " & Me.AuftragsNummerBIS.Value & ") AND([Kundennummer] BETWEEN " & Me.KundennummerVON.Value & " AND " & Me.KundennummerBIS.Value & ")"
Grüße Uwe