我在MS Access数据库中有一组VBA类.
我有一个xml字符串,其中包含我想要创建新类的数据.
我有一个xml字符串,其中包含我想要创建新类的数据.
除了单独设置每个属性之外,还有一种简单的方法可以将XML反序列化为我的对象吗?
我已经看到使用TypeLib库的代码
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
但这似乎不适用于标准类模块.我收到429错误:
ActiveX Component Cannot Be Created
其他人可以帮帮我吗?如果我可以提供帮助,我宁愿不必手动设置每个属性,这些类中的一些是巨大的!
解决方法
你永远不会在该代码中实例化tTLI&然后将它称为TLI,因此它不会工作,429错误可能是因为TypeInfo库未注册,您是否将其添加为引用?
如果您这样做了以下将工作:
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
如果愿意,可以用CallByName替换InvokeHook.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。