Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Access VBA gefilterter Bericht in XML-Datei exportieren

Frage Entwicklung VB for Applications

Mitglied: Rala11

Rala11 (Level 1) - Jetzt verbinden

22.08.2013 um 16:26 Uhr, 3335 Aufrufe, 4 Kommentare

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
Mitglied: colinardo
23.08.2013, aktualisiert um 08:39 Uhr
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.
01.
MEINREPORTNAME = "Kundenbericht" 
02.
REPORTFILTER = "[PLZ] like '2*'" 
03.
XMLAUSGABE = "E:\mydata.xml" 
04.
 
05.
'Öffne den gefilterten Bericht   
06.
DoCmd.OpenReport REPORTNAME:=MEINREPORTNAME, View:=acViewReport, WhereCondition:=REPORTFILTER 
07.
 
08.
'Rufe die Export-Funktion auf um den Bericht als XML zu exportieren 
09.
Application.ExportXML ObjectType:=acExportReport, DataSource:="Kundenbericht", DataTarget:=XMLAUSGABE 
10.
 
11.
'Zur Demo eine Meldung anzeigen wenn der Export fertig ist. 
12.
msgbox "Export ist erfolgt! Zu finden unter '" & XMLAUSGABE & "'" 
13.
 
14.
'Wenn benötigt folgende Zeile auskommentieren. Damit kann der Bericht gleich wieder geschlossen werden 
15.
'DoCmd.Close acReport, REPORTNAME
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
Bitte warten ..
Mitglied: Rala11
23.08.2013 um 09:47 Uhr
Hallo Uwe,
Danke für Deine schnelle Antwort.
Genau der Filter ist auch das Problem. Die Filterkriterien wurden ja schon im Formular eingeben und sind auch etwas umfangreicher:

[Kundennummer]: von - bis
[Datum]: von - bis
[Auftrag-Nr]: von - bis

Gibt es eine Möglichkeit die im Formular eingegebenen Kriterien "abzugreifen" und wie hier im Bsp. an REPORTFILTER zu übergeben?

Gruß Rala11
Bitte warten ..
Mitglied: colinardo
23.08.2013, aktualisiert um 10:11 Uhr
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.

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.
01.
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 & ")"
Dazu gibt es folgendes zu beachten: Beim angeben von einem Datum muss dieses immer mit einer "#" umschlossen werden. Ich gehe jetzt mal davon aus das deine Kundennummern und Auftragsnummern wirklich nur aus Zahlen bestehen, denn ansonsten geht obiges Beispiel nicht, dann müsste man es noch weiter anpassen. Und bei String-Vergleichen sollten die Strings mit einfachen Hochkommas umschlossen sein.

Grüße Uwe
Bitte warten ..
Mitglied: Rala11
23.08.2013 um 15:00 Uhr
Hallo Uwe,
habe es hinbekommen!

Vielen Dank für Deine Hilfe.
Bitte warten ..
Ähnliche Inhalte
XML
gelöst Xml-Datei in eine csv-Datei umwandeln mit Powershell (5)

Frage von jan.kleinel zum Thema XML ...

XML
gelöst XML Datei mit Powershell splitten (2)

Frage von LianenSchwinger zum Thema XML ...

XML
XML Datei Fehler? (1)

Frage von Patrick-IT zum Thema XML ...

Batch & Shell
Script zum XML Datei Umschreiben (12)

Frage von cberndt zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Server-Hardware
Treiber für Server gesucht (15)

Frage von MeisterFuchs zum Thema Server-Hardware ...