Pregunta

Tengo un conjunto de clases de VBA en una base de datos MS Access. Tengo una cadena XML con los datos Quiero crear nuevas clases con.

Además de establecer cada propiedad individual, ¿hay una manera fácil de deserializar el XML en mi objeto?

he visto el código usando la biblioteca biblioteca de tipos

Public Sub ISerializable_Deserialize(xml As IXMLDOMNode)

  Dim tTLI As TLIApplication
  Dim tInvoke As InvokeKinds
  Dim tName As String
  Dim tMem As MemberInfo

  tInvoke = VbLet

  For Each tMem In TLI.ClassInfoFromObject(Me).Members

     tName = LCase(tMem.Name)

     CallByName Me, tMem.Name, VbLet, xml.Attributes.getNamedItem(tName).Text

  Next tMem
End Sub

pero esto no parece que el trabajo con los módulos de clase estándar. Me sale un error 429:

ActiveX Component Cannot Be Created

Puede alguien ayudarme a cabo otro sitio? Preferiría no tener que configurar cada hotel fenomenal con la mano si puedo evitarlo, algunas de estas clases son enormes!

¿Fue útil?

Solución

Nunca tTLI ejemplo, en ese código y tarde y se refieren a ella como TLI simplemente por lo que no funcionará, el error 429 puede ser porque la biblioteca TypeInfo no se ha registrado, ¿ha agregado como una referencia?

Si ha realizado el siguiente trabajo:

Dim TLI As TLIApplication
Dim II As InterfaceInfo
Dim MI As MemberInfo

Set TLI = New TLIApplication
Set II = TLI.InterfaceInfoFromObject(Me)

For Each MI In II.Members
    If MI.InvokeKind = InvokeKinds.INVOKE_PROPERTYPUT Then
        Debug.Print MI.Name
        TLI.InvokeHook Me, MI.Name, InvokeKinds.INVOKE_PROPERTYPUT, "PROPVALUE"
    End If
Next

Se puede reemplazar con InvokeHook CallByName si lo desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top