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, 3361 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
VB for Applications
Csv in xml umwandeln mit VBA (8)

Frage von 130771 zum Thema VB for Applications ...

Datenbanken
Access 2010 Sortierung im Bericht funktioniert nicht

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Windows 10
Bericht lokaler Gruppenrichtlinie exportieren (3)

Frage von eglipeter zum Thema Windows 10 ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(1)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (17)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

E-Business
Wo tragt ihr eure privaten Termine ein? (14)

Frage von honeybee zum Thema E-Business ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...