vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 15.07.19 14:03

Hallo zusammen,

vielleich hat jemand von Euch bereits ein ähliches Problem gehabt und die Lösung gefunden. Ich habe einen neuen PC mit Windows 10 auf gesetzt und die VB6 Entwicklungsumgebung installiert. Beim ersten Compile komme ich auf den Fehler: User-defined type not defined - der Curser steht dann auf:
Dim objXML      As MSXML2.DOMDocument
In den References des Projektes habe ich den nachstehenden eintrag markiert:

Microsoft XML, v6.0

Fehlt noch was oder wo könnte die Ursache liegen?

Danke für Euer Feedback
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: visualfx
Datum: 18.07.19 11:44

Hallo Rainer,

die Klassen stehen bei Windows (10) in der Registry unterhalb vom Schlüssel HKEY_CLASSES_ROOT

Msxml2.DOMDocument
└ CurVer: (Standard) = Msxml2.DOMDocument.3.0

Msxml2.DOMDocument.3.0

Msxml2.DOMDocument.6.0



d. h. bei:
Dim objXML      As MSXML2.DOMDocument
Dim objXML      As MSXML2.DOMDocument.3.0
wird immer die Version 3.0 benutzt


nur bei
Dim objXML      As MSXML2.DOMDocument.6.0
wird die Version 6.0 benutzt


Gruß, Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 18.07.19 12:13

Hallo Stefan,

Danke für dein Feedback. Jetzt läuft es.

Gruss
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 29.08.19 09:03

Hallo,

ich "bastele" noch immer an der XML-Problematik unter Windows 10 herum. Sowohl unter Windows 7 wie auch unter Windows 10 habe ich eine Referenz auf MSXML v6.0. Bei Win7 stehen die Objekte DOMDocument, DOMDocument26, DOMDocument30, DOMDocument40 und DOMDocument60 zur Verfügung. Ich wähle DOMDocument und es funktionert. Unter Windows 10 gibt es nur noch DOMDocument60. Ich wähle hier dieses Objekt - und das Parsen der Nodes funktioniert nicht mehr. Die XML-Datei kann aber geladen werden. Sobald das Programm auf die For Each - Schleife kommt, verzweigt es sofort zum Exit der Sub. Ich habe gegoogled, diverse Foren durchsucht - aber noch keine Lösung für das Problem gefunden.

Option Explicit
 
Dim objXML              As MSXML2.DOMDocument60
Dim objNtryNodes        As MSXML2.IXMLDOMNodeList
Dim objNtry             As MSXML2.IXMLDOMNode
Dim objTxDtlsNodes      As MSXML2.IXMLDOMNodeList
Dim objTxDtls           As MSXML2.IXMLDOMNode
Dim objNodeAmt          As MSXML2.IXMLDOMNode
Dim objAttr             As MSXML2.IXMLDOMAttribute
Dim objNodeZahler       As MSXML2.IXMLDOMNode
..
..
Set objNtryNodes = objXML.documentElement.selectNodes( _
  "./BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry")
 
For Each objNtry In objNtryNodes
Vielleicht habe ich ja hier mehr Glück.

Danke
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: visualfx
Datum: 29.08.19 10:03

Hallo Rainer,

das ist mysteriös !

denn bei mir gibt es unter Windows 10:

- Msxml2.DOMDocument
- Msxml2.DOMDocument.3.0
- Msxml2.DOMDocument.6.0

CurVer von Msxml2.DOMDocument enthält Msxml2.DOMDocument.3.0


ich habe Dir mal die 3 Schlüssel von Msxml2.DOMDocument(.x.x) und die 3 zugehörigen CLSIDs in 6 reg-Dateien exportiert und in einer zip-Datei zusammen gefaßt

die zip-Datei mit den 6 reg-Dateien kannst Du Dir hier herunterladen:

http://www.memotech.de/Msxml2/Msxml2_reg.zip


Du kannst Dir den Inhalt der 6 reg-Dateien ja zuerst mal z. B. mit Wordpad ansehen (Öffnen mit Wordpad)

mit jeweils einem Doppel-Klick auf die 6 reg-Dateien, wird deren ihr Inhalt bei Dir in der Registry eingetragen

Gruß, Stefan

Beitrag wurde zuletzt am 29.08.19 um 10:05:10 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 29.08.19 12:00

Hallo Stefan,

auch auf meinem System finde ich MSXML v3.0 und MSXML v6.0. Wenn ich aber im Projekt die Version 6.0 referenziere, kann ich nur MSXML2.DOMDocument60 verwenden - und da liegt das Problem.

Mit dieser Version kann ich zwar den Load der XML-Datei machen; es ist aber nicht möglich, die einzelnen Nodes der Datei in einer Schleife zu durchlaufen. Mit der Version 3.0 funktioniert das
bestens.

Ich vermute, dass mit der 6.0 die Nodes nicht gelesen/erkannt werden. Sind hier vielleicht unterschiedliche Sprachen XPath / ... im Einsatz?

Ich habe die ZIP-Datei entpackt. Diese Komponenten sind auch bei mir enthalten.


Gruss
Rainer

Beitrag wurde zuletzt am 29.08.19 um 12:12:22 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 29.08.19 12:36

Hallo Stefan,

bei mir sind die Msxml2.DOMDocument und Msxml2.DOMDocument.3.0 und Msxml2.DOMDocument.6.0 in der Registry enthalten; jedoch ohne ".reg". Letzteres ist wohl nur eine Ansichtssache. Die ersten drei Dateien in Deinem ZIP konnte ich nicht finden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 29.08.19 13:31

Ich habe folgenden Betrag im Web gefunden:
:
Zitat:


In my VB6 project I referenced MSXML 6.0 on Windows 7. And the msxml6.dll includes also MSXML 3.0. But on Windows 10 MSXML6.dll doesn't inlcudes MSXML 3.0 anymore. In my code I used both MSXML 3.0 types and MSXML 6.0 types. I need both. Sould I create a new question for that problem?


Das erklärt wohl, warum das Programm unter Windows 7 mit msxml6.dll läuft; nicht jedoch unter Windows 10.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 29.08.19 13:55

Hi Stefan

ich kann die 6 Dateien leider nicht wie von Dir angegeben importieren. Erhalte dann die nachstehende Fehlermeldung:

Kann nicht importiert werden
Nicht alle Daten konnten in der Systemregistrierung eingetragen werden. Einige Schlüssel sind vom System oder anderen Prozessen geöffnet oder Sie verfügen nicht über ausareichende Rechte zum Ausführen dieses Vorganges.

Leider kann ich den Explorer nur "normal" aufrufen und nicht, wie bei einigen anderen Apps, mit Admin-Rechten. Das ist wohl das Problem.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: visualfx
Datum: 29.08.19 17:07

Hallo Rainer,

es wird immer mysteriöser !

ich kann bei meinem Windows 10 die reg-Dateien auch nicht zusammenführen / importieren !

auch nicht, wenn ich regedit.exe als Administrator starte und dann die reg-Dateien über Datei => Importieren ... einlesen möchte

es kommt bei mir auch immer genau dieselbe Meldung wie bei Dir ... (???)


meine Windows 10-Version lautet: Version 1903 (Build 18362.295)

vielleicht hast Du noch nicht die neuste Windows 10-Version, dann würde ich mal ein Update durchführen

Gruß, Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 29.08.19 18:55

Hallo Stefan,

meine Windows-10-Version lautet: 10.0.17134 Build 17134

Wenn ich so die Nummern vergleiche, habe ich tatsächlich nicht die neueste Version. Will mal schaue,
was da an Updates vorhanden ist.


Schönen Abend
Rainer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 30.08.19 14:32

Hallo,

auch nach dem Update auf die aktuelle Windows-Version kann ich mit msxml.dll 6.0 nicht durch die Nodes iterieren. Der Set funktioniert - es wird keine Fehlermeldung angezeigt. Aber anscheinend kann die For Each-Schleife die Nodes nicht erkennen.

Ich gehe wieder auf msxml.dll v3.0 zurück - da funktioniert alles.

Danke für die Unterstützung
Rainer


Set objNtryNodes = objXML.documentElement.selectNodes( _
  "./BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry")
If Not (objNtryNodes is Nothing) then  
   For Each objNtry In objNtryNodes
   ...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: Wolfgang Schwarz
Datum: 31.08.19 17:00

Genau wegen dieser Problematik habe ich vor vielen Jahren entschieden auf MSXML zu verzichten.
Man weis ja nie ob/welche MSXML-Version auf dem Zielrechner beim Kunden vorhanden ist.

Seitdem mache ich mit XML alles selbst.
Meine Anforderungen scheinen aber auch nicht so anspruchsvoll zu sein

Wolfgang Schwarz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML in VB6-Programm integrieren (Windows 10) 
Autor: crosstravel
Datum: 01.09.19 14:29

Ja, das ist wohl der richtige Weg. Es ist einfach unverständlich, dass MS bei einem Update (hier MSXL v6.0) keine Abwärtskompatibilität gewähleistet.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel