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, 3189 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

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 ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...