MS Access veritabanında bir dizi VBA sınıfları var. Yeni sınıflar oluşturmak istediğim verilerle birlikte bir xml dizim var.VB/VBA'da XML Deserialization
Her özelliği tek tek ayarlamak yerine, XML'i nesneme dönüştürmek için kolay bir yol var mı?
Ben TypeLib kütüphanesini
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
kullanarak kodu gördüm ama bu standart sınıf modülleri ile çalışmak için görünmüyor. Ben bir 429 hatası alıyorum:
ActiveX Component Cannot Be Created
Başka biri bana yardımcı olabilir mi? Eğer yardımcı olabilirsem, her bir idareyi elle ayarlamak zorunda kalmamayı tercih ederim, bu sınıfların bazıları çok büyük!
Access veritabanındaki özel sınıflar herhangi bir genel tür kitaplığı içinde yer almaz. Bu nedenle, önerdiğiniz gibi giderilen yazım hataları olsa bile bunun işe yaramayacağını düşünmüyorum. "InterfaceInfoFromObject (Me)" nin, "Me" nin ilgili arabirimleri herkese açık olmadığı için başarılı olabileceğini sanmıyorum. – MarkJ
InterfaceInfoFromObject, benim için Access'te çalışan IDispatch :: GetTypeInfo() aracılığıyla çalışır .. nasıl .. kim bilir? –
Teşekkürler Alex. Hala çalışmıyor, Set TLI = Yeni TLIApplication hattında artık aynı hatayla başarısız oluyor. Ben typelib başvuru başvuruyor, (tlbinf32.dll) bu doğru olanı mı? Ben. – oharab