我在64位Windows 7计算机上运行一些遗留的VB6代码,并且遇到了一些奇怪的错误。
我的代码在这里爆炸:
带有消息:
此错误处理之上的整段代码前面是:
On Error GoTo ErrorTrap
ErrorTrap是我上面看到的For Each循环。
导致此类型不匹配的原因是什么?
答案 0 :(得分:4)
MyError必须是Variant类型:在VB6中For
- Each
枚举必须使用Variant完成。
使用
Dim MyError As Variant
代替。
答案 1 :(得分:2)
如果您的代码与ADO有关,那么它可能是已知的VB6 ADO&这里描述的Win 7问题:http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/3a4ce946-effa-4f77-98a6-34f11c6b5a13。似乎在Win7 Sp1中改变了类型库,这可能使在先前平台上编译的VB6应用程序在Win 7上运行时崩溃,或者在Win 7上运行的应用程序在先前平台上运行时崩溃。链接的文章提供了一些解决方案的建议,如果您有源代码,最简单的方法是切换到可行时使用后期绑定。