Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
XML- importieren
zurück: Datensätze mit aktuellem Datum in neue Tabelle schreiben weiter: access abfrage nach datum einschränken Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
christianseiler
Im Profil kannst Du frei den Rang ändern


Verfasst am:
26. März 2010, 13:50
Rufname:
Wohnort: Freising

XML- importieren - XML- importieren

Nach oben
       Version: Office 2007

Hallo,

Für die Kopierabrechnung unserer Schule würde ich gerne eine XML-Datei in Access importieren.
Die XML-Datei enthält Ereignisse der Windows Ereignisanzeige und sieht ungefähr wie folgt aus:
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
- <Events>
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-PrintSpooler" Guid="{e4c60dfa-ecc5-4889-b406-e9ddd38463c8}" EventSourceName="Print" />
  <EventID Qualifiers="16384">10</EventID>
  <Version>0</Version>
  <Level>4</Level>
  <Task>0</Task>
  <Opcode>0</Opcode>
  <Keywords>0x80000000000000</Keywords>
  <TimeCreated SystemTime="2010-03-24T11:40:08.000Z" />
  <EventRecordID>90584</EventRecordID>
  <Correlation />
  <Execution ProcessID="0" ThreadID="0" />
  <Channel>System</Channel>
  <Computer>SRV001.verwaltung.local</Computer>
  <Security UserID="S-1-5-21-2878407965-1110811629-1613421474-1302" />
  </System>
- <EventData>
  <Data Name="param1">57</Data>
  <Data Name="param2">OMNIS 7</Data>
  <Data Name="param3">Karl.Napf</Data>
  <Data Name="param4">SamsungLZ</Data>
  <Data Name="param5">123.456.789.0</Data>
  <Data Name="param6">104048</Data>
  <Data Name="param7">1</Data>
  </EventData>
- <RenderingInfo Culture="de-DE">
  <Message>Das Dokument 57, OMNIS 7 im Besitz von Karl.Napf wurde über den Anschluss 123.456.789.0 auf SamsungLZ gedruckt. Größe in Bytes: 104048; Gedruckte Seiten: 1. Eine Benutzeraktion ist nicht erforderlich. Gehen Sie wie folgt vor, um die Protokollierung von Informationen für den Druckspooler zu beenden. Öffnen Sie die Anwendung Drucker in der Systemsteuerung, klicken Sie mit der rechten Maustaste auf einen leeren Bereich des Fensters, klicken Sie auf "Als Administrator ausführen", klicken Sie auf "Servereigenschaften", klicken Sie auf die Registerkarte "Erweitert", und deaktivieren Sie dann das Kontrollkästchen "Spoolerinformationen protokollieren".</Message>
  <Level>Informationen</Level>
  <Task />
  <Opcode />
  <Channel />
  <Provider>Microsoft-Windows-PrintSpooler</Provider>
- <Keywords>
  <Keyword>Klassisch</Keyword>
  </Keywords>
  </RenderingInfo>
  </Event>
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-PrintSpooler" Guid="{e4c60dfa-ecc5-4889-b406-e9ddd38463c8}" EventSourceName="Print" />
  <EventID Qualifiers="16384">10</EventID>
  <Version>0</Version>
  <Level>4</Level>
  <Task>0</Task>
  <Opcode>0</Opcode>
usw.
Ich hätte gerne eine Tabelle, mit den Daten die hinter param1 bis param7 stehen.
Über importieren aus XML-Datei erhalte ich aber nur ganz komische Ergebnisse.

Ich hoffe, dass Ihr mir helfen könnt!

Viele Grüße
Christian Seiler
Nachtrag: christianseiler am 07. Jun 2010 um 13:50 hat folgendes geschrieben:
Niemand da, der mir helfen kann? Sad
Nouba
nicht ganz unwissend :)


Verfasst am:
07. Jun 2010, 14:26
Rufname:
Wohnort: Berlin


AW: XML- importieren - AW: XML- importieren

Nach oben
       Version: Office 2007

Hallo,

die MSXML-Bibliothek und XPath könnten Dein Freund sein. MSXML 4.0 Service Pack 2 (Microsoft XML Basisdienste) enthält die notwendige Hilfe.

PS: Wenn Du eine gültige XML-Datei (ohne - und ohne usw.) postest, würde ich mir das auch einmal genauer ansehen.

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
christianseiler
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Jun 2010, 14:39
Rufname:
Wohnort: Freising

AW: XML- importieren - AW: XML- importieren

Nach oben
       Version: Office 2007

Hallo Nouba,

vielen Dank für Deine schnelle Antwort!
Leider kenne ich mich mit xml so überhaupt nicht aus.

Ich habe die komplette xml-Datei auf unsere Homepage geladen.
Hier ist der Link: (siehe Anhang)

Wenn Du sie dir mal anschauen könntest, wäre ich Dir wirklich sehr dankbar!

Viele Grüße
Christian



kopierer.zip
 Beschreibung:

Download
 Dateiname:  kopierer.zip
 Dateigröße:  4.13 KB
 Heruntergeladen:  18 mal

Nouba
nicht ganz unwissend :)


Verfasst am:
07. Jun 2010, 17:39
Rufname:
Wohnort: Berlin

AW: XML- importieren - AW: XML- importieren

Nach oben
       Version: Office 2007

Hallo Christian,

mit den Daten im Datenbankverzeichnis und einer Tabelle EVENTDATA (siehe Anhang) gelingt das Vorhaben, wie folgt. Dabei sind die Verweise laut Anhang zu setzen.

Code:
'---------------------------------------------------------------------------------------
' Module    : mdlReadXml
' Author    : Norbert Bous
' Date      : 2010-06-07
' Purpose   : Funktionsmodul
'             Function ImportKopiererXml() führt das Parsen des XML-Dokuments kopier.xml
'             aus.
'---------------------------------------------------------------------------------------

Option Explicit

' Datenbank-Pfad
Public Property Get DbPath() As String
  Static sDbPath As String
 
  If Not LenB(sDbPath) Then sDbPath = CurrentProject.Path & "\"
  DbPath = sDbPath
End Property

' Simple API für XML Lese-Objekt
Public Property Get SaxReader() As MSXML2.SAXXMLReader
  Static sr As MSXML2.SAXXMLReader
 
  If sr Is Nothing Then Set sr = New MSXML2.SAXXMLReader
  Set SaxReader = sr
End Property

' Datenbank-Objekt
Public Property Get ThisDb() As DAO.Database
  Static db As DAO.Database
 
  If db Is Nothing Then Set db = CurrentDb()
  Set ThisDb = db
End Property

' Importiert Daten aus kopier.xml
Function ImportKopiererXml()
  Const csXmlFileName As String = "kopierer.xml"

  Set SaxReader.contentHandler = New DerContentHandler
  Set SaxReader.errorHandler = New DerErrorHandler
  SaxReader.parseURL DbPath & csXmlFileName
End Function


'---------------------------------------------------------------------------------------
' Module    : DerContentHandler
' Author    : Norbert Bous
' Date      : 2010-06-07
' Purpose   : Rückrufklasse für den SAXXMLREADER - wertet den Inhalt der XML-Datei
'             kopierer.xml aus und schreibt die Inhalte der Elemente Data in eine
'             Tabelle 'EVENTDATA' - hier sind ggf. Feldgrößen und Feldnamen anzupassen
'---------------------------------------------------------------------------------------

Option Explicit

Implements IVBSAXContentHandler

' enthält den Parameternamen oder vbNullString ("")
Private m_sParam As String

' temporäre Anfügeabfrage
Private Property Get Qdf() As DAO.QueryDef
  Static oQdf As DAO.QueryDef

  ' SQL-anweisung der Anfügeabfrage
  Const csAppQry As String = _
        "INSERT INTO EVENTDATA VALUES(" & _
        "[:param1],[:param2],[:param3],[:param4]," & _
        "[:param5],[:param6],[:param7])"

  If oQdf Is Nothing Then
    Set oQdf = ThisDb.CreateQueryDef(vbNullString, csAppQry)
  End If
  Set Qdf = oQdf
End Property

Private Sub IVBSAXContentHandler_characters(strChars As String)
  ' Parameternamen auswerten
  Select Case Right$(m_sParam, 1)
  ' Parameterwerte setzen
  Case "1", "2", "4" To "6": Qdf(m_sParam) = strChars
  Case "3": Qdf(m_sParam) = Replace(strChars, ".", " ") ' Name korrigieren
  Case "7": Qdf(m_sParam) = strChars:  Qdf.Execute      ' Abfrage ausführen
  End Select
  m_sParam = vbNullString                               ' Parameter zurücksetzen
End Sub

Private Property Set IVBSAXContentHandler_documentLocator( _
        ByVal RHS As MSXML2.IVBSAXLocator)
End Property

Private Sub IVBSAXContentHandler_endDocument()
End Sub

Private Sub IVBSAXContentHandler_endElement(strNamespaceURI As String, _
                                            strLocalName As String, _
                                            strQName As String)
End Sub

Private Sub IVBSAXContentHandler_endPrefixMapping(strPrefix As String)
End Sub

Private Sub IVBSAXContentHandler_ignorableWhitespace(strChars As String)
End Sub

Private Sub IVBSAXContentHandler_processingInstruction(strTarget As String, _
                                                       strData As String)
End Sub

Private Sub IVBSAXContentHandler_skippedEntity(strName As String)
End Sub

Private Sub IVBSAXContentHandler_startDocument()
End Sub

Private Sub IVBSAXContentHandler_startElement(strNamespaceURI As String, _
                                              strLocalName As String, _
                                              strQName As String, _
                                              ByVal oAttributes As MSXML2.IVBSAXAttributes)
  If strQName = "Data" Then ' Element auswerten
    ' gibt es das Attribut "Name" und ist der Inhalt "paramX" (X = 1-7)
    If oAttributes.getQName(0) = "Name" And _
       oAttributes.getValue(0) Like "param[1-7]" Then
      ' Parameternamen in Variable schreiben
      m_sParam = ":" & oAttributes.getValue(0)
    End If
  End If
End Sub

Private Sub IVBSAXContentHandler_startPrefixMapping(strPrefix As String, _
                                                    strURI As String)
End Sub


'---------------------------------------------------------------------------------------
' Module    : DerErrorHandler
' Author    : bousn
' Date      : 2010-06-07
' Purpose   : Rückrufklasse für den SAXXMLREADER - gibt Meldungen bei Fehlern aus
'---------------------------------------------------------------------------------------

Option Explicit

Implements MSXML2.IVBSAXErrorHandler

Private Sub IVBSAXErrorHandler_error(ByVal oLocator As MSXML2.IVBSAXLocator, _
                                     strErrorMessage As String, _
                                     ByVal nErrorCode As Long)
  MsgBox "Fehler: " & nErrorCode & " in Zeile: " & oLocator.lineNumber & _
         ", Spalte: " & oLocator.columnNumber & vbCrLf & strErrorMessage, _
         vbOKOnly Or vbCritical, "Fehler"
End Sub

Private Sub IVBSAXErrorHandler_fatalError(ByVal oLocator As MSXML2.IVBSAXLocator, _
                                          strErrorMessage As String, _
                                          ByVal nErrorCode As Long)
  MsgBox "Fataler Fehler: " & nErrorCode & " in Zeile: " & oLocator.lineNumber & _
         ", Spalte: " & oLocator.columnNumber & vbCrLf & strErrorMessage, _
         vbOKOnly Or vbCritical, "Fataler Fehler"
End Sub

Private Sub IVBSAXErrorHandler_ignorableWarning(ByVal oLocator As MSXML2.IVBSAXLocator, strErrorMessage As String, ByVal nErrorCode As Long)
  ' do nothing
End Sub

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.



EventSchema.png
 Beschreibung:
 Dateigröße:  5.23 KB
 Angeschaut:  1422 mal

EventSchema.png



kopier-refs.png
 Beschreibung:
 Dateigröße:  5.4 KB
 Angeschaut:  1422 mal

kopier-refs.png


christianseiler
Im Profil kannst Du frei den Rang ändern


Verfasst am:
07. Jun 2010, 17:47
Rufname:
Wohnort: Freising


AW: XML- importieren - AW: XML- importieren

Nach oben
       Version: Office 2007

Wow Surprised

Vielen vielen Dank!!! Ich kann dir gar nicht sagen, wie dankbar ich dir bin, da du uns damit ganz viel Arbeit an der Schule erleichtert hast!

Ich werd das jetzt gleich mal ausprobieren Smile

Viele Grüße
Christian
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: EXEL Tabelle importieren und EXEL-Tab = Feldname? 1 Fabian Meiner 385 17. Sep 2008, 15:22
eiskalterengel EXEL Tabelle importieren und EXEL-Tab = Feldname?
Keine neuen Beiträge Access Tabellen & Abfragen: txt-Datei in Tabelle importieren 2 sid-online 370 08. Aug 2008, 08:25
sid-online txt-Datei in Tabelle importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Sonderzeichen nach Access importieren 6 Avatar 1098 12. Jul 2008, 15:09
Avatar Sonderzeichen nach Access importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Importieren von Excel Datei als Memo 0 Gustl 1092 08. Mai 2008, 14:48
Gustl Importieren von Excel Datei als Memo
Keine neuen Beiträge Access Tabellen & Abfragen: MySQL Dump nach Access importieren 0 Montgomery 3050 07. März 2008, 15:07
Montgomery MySQL Dump nach Access importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Bestimmte Spalten aus einer Exceltab. in Access importieren 1 k-millo 984 29. Feb 2008, 14:21
JoachimG Bestimmte Spalten aus einer Exceltab. in Access importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Textdatei mit vba importieren 18 fred001 8181 08. Feb 2008, 12:49
fred001 Textdatei mit vba importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Textdatei in Access importieren+aktualisieren+erweitern 5 maku 803 03. Nov 2007, 14:57
Willi Wipp Textdatei in Access importieren+aktualisieren+erweitern
Keine neuen Beiträge Access Tabellen & Abfragen: Filterdaten aus Excel importieren? 0 pa.baeumel 473 04. Jul 2007, 13:31
pa.baeumel Filterdaten aus Excel importieren?
Keine neuen Beiträge Access Tabellen & Abfragen: Word in Access importieren 6 Daniel Sued 707 27. Jun 2007, 12:34
Daniel.Sued Word in Access importieren
Keine neuen Beiträge Access Tabellen & Abfragen: Daten aus Access nach Excel importieren 3 Kranich 4045 08. März 2007, 10:13
Willi Wipp Daten aus Access nach Excel importieren
Keine neuen Beiträge Access Tabellen & Abfragen: textdateien in access importieren, diesmal anders 17 SpeedRAZR 1798 19. Sep 2006, 09:38
SpeedRazR textdateien in access importieren, diesmal anders
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme