2012-03-28 18 views
3

ich in meinem PC installiert haben MSXML 2.6 MSXML 3.0 MSXML 4.0 MSXML 6.0MSXML: Ungültige Klasse String

wenn ich versuche, meine XSL in der Ausführungszeit zu analysieren, ich habe den Fehler ungültige Klasse String diese wird der Code

Public Sub PreviewDOCUMENT() 
    Dim ObjXMLTransformDoc 
    Dim ObjXMLTransformStyle 
    Dim ObjXMLDoc 
    Dim ObjXMLStyle 
    Dim ObjXsltSettings 
    On Error GoTo ERR_HANDLER 

    If mResultPath <> "" Then 

     Set ObjXMLTransformDoc = CreateObject("Msxml2.DOMDocument.4.0") 
     ObjXMLTransformDoc.Load (mResultPath & MyDocument.DOC_TYPE & "_XML_TO_XSL.xml") 

     Set ObjXMLTransformStyle = CreateObject("Msxml2.DOMDocument.4.0") 
     ObjXMLTransformStyle.Load ActiveWorkbook.path & "\RESULT\form_generation.xsl" 

     ObjXMLTransformStyle.setProperty "AllowXsltScript", True 

     Set ObjXMLStyle = CreateObject("Msxml2.DOMDocument.4.0") 
     ObjXMLTransformDoc.transformNodetoObject ObjXMLTransformStyle, ObjXMLStyle 

     KillFile mResultPath & MyDocument.DOC_TYPE & "_DOCUMENT_STYLE.xsl" 
     DoEvents 
     AppendToTextFile mResultPath & MyDocument.DOC_TYPE & "_DOCUMENT_STYLE.xsl", ObjXMLStyle.XML 


     Dim mSE As New CShellExecute 
     mSE.LaunchDocument 0, mResultPath & MyDocument.DOC_TYPE & "_XML_TO_XML.xml", ActiveWorkbook.path & "\RESULT\", sesSW_SHOWDEFAULT 
    Else 
     MsgBox "Create documents first!" 
    End If 
Exit Sub 

ERR_HANDLER: 
    MsgBox "Error: " & Err.Number & ". " & Err.Description 

End Sub 
+0

Haben Sie in Ihrem Projekt einen Verweis auf msxml4 hinzugefügt? Abgesehen davon würde ich msxml6 verwenden, da dies jetzt Teil von Windows ist und keine separate Bereitstellung benötigt. – Dabblernl

+0

Wenn ich MSXML 6.0 verwende, habe ich den Fehler: Javascript ist keine Skriptsprache. –

+0

Das ist völlig verwirrend ;-). Auf welcher Zeile erhalten Sie den VB6-Fehler über die ungültige Klassenzeichenfolge? – Dabblernl

Antwort

1

Soweit ich die Standard-Lade asynchron erinnern so für Ihre Sequenz von Code Sinn machen müssen Sie ObjXMLTransformDoc.async = False vor dem ObjXMLTransformDoc.Load Last Call und ObjXMLTransformStyle.async = False b hinzufügen vor dem ObjXMLTransformStyle.Load Anruf. Ob die Fehlermeldung, die Sie bekommen, damit zusammenhängt, bin ich mir aber nicht sicher. Können Sie uns die genaue Anweisung oder Zeile nennen, für die Sie diesen Fehler erhalten?

+0

Die Zeile lautet: ObjXMLTransformDoc.transformNodetoObject ObjXMLTransformStyle, ObjXMLStyle –