This site uses cookies to deliver our services. By using this site, you acknowledge that you have read and understand our Cookie and Privacy policy. Your use of Kontext website is subject to this policy. Allow Cookies and Dismiss

VB运行时错误 Run time error '13': Type mismatch 解决方案

601 views 0 comments last modified about 9 years ago Raymond Tang

前段时间同事使用DAO从Access数据库中取数据,可不知道为何原因,在使用Recordset的时候出现了这个错误,虽然理解字面意思是类型不匹配,但是哪里类型不匹配了差了半天也没查出来。

后来通过微软的帮助文档找了问题的解决方案http://support.microsoft.com/kb/181542#top

问题出现的原因是ADO和DAO中都有Recordset这个类,如果在你的项目的引用中ADO的优先级大于了DAO,则当你没有指定Recordset的时候,就会出现这个问题了,因为默认会当做ADO的Recordset处理,当然类型就不匹配了。

如下:

Dim dbs AS Database
Dim rs AS Recordset ' When you press the spacebar after "AS," the
                           ' list box includes multiple Recordset entries.
                           ' Pick any Recordset item, or type "Recordset."
Private Sub Form_Load()
Set dbs=OpenDatabase(dbname)
Set rs=dbs.OpenRecordset(source) ' The error occurs when this line
                                        ' of code executes.
End Sub

那么只需修改为:

Dim dbs AS Database
Dim rs AS DAO.Recordset ' When you press the spacebar after "AS," the
                           ' list box includes multiple Recordset entries.
                           ' Pick any Recordset item, or type "Recordset."
Private Sub Form_Load()
Set dbs=OpenDatabase(dbname)
Set rs=dbs.OpenRecordset(source) ' The error occurs when this line
                                        ' of code executes.
End Sub

对于不同的类型则不同的声明:

Dim adoRS As ADODB.Recordset
Dim daoRS As DAO.Recordset

Related pages

MD5算法的VB类模块以及在Access数据库中的应用

331 views   0 comments last modified about 9 years ago

本文主要阐述如何利用MD5的VB版本类在Access中的使用,关于这个类,我参考了网上相关文章,而没有自己改写MD5类,关于这个类的源码以及作者相关信息请查看本文最后部分(注意:该类源码的版权归原作者所有)。一,在Access数据库中新建一个类模块 Class Module,名称为ClsMD5

View detail

在VB6/Access数据库中实现三十二进制Duotricemary

314 views   0 comments last modified about 9 years ago

前几天我发表了一篇博客,介绍了如何在C#中实现三十二进制的算法;虽然这解决了在系统逻辑层等的实现,但是由于我们的系统需要借助三十二进制实现一个ID主键的自增长,而这在Access数据库中实现就比较麻烦了,不过最终我完成了这个VB版本的三十二进制模块,它可以在Access中的窗体、查询等等对象中直接使用,也可以通过.NET调用,下面将依次介绍。1,VB6/Access数据库中的模块代码

View detail

Add comment

Please login first to add comments.  Log in New user?  Register

Comments (0)

No comments yet.