CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

50分请教一个简单问题!

楼主kxiangwei(小孔)2003-12-02 17:54:17 在 VB / 基础类 提问

我在程序中使用了如下代码:  
  Option   Explicit  
  Dim   myws   As   Workspace  
  Dim   mydb   As   Database  
  Dim   myrs   As   Recordset  
  ————————————————  
  Private   Sub   Form_Load()  
          Set   myws   =   DBEngine.Workspaces(0)  
          Set   mydb   =   myws.OpenDatabase(App.Path   +   "\gongwen.mdb")  
          Set   myrs   =   mydb.OpenRecordset("select   *   from   电子公文表",   dbOpenDynaset)  
  End   Sub  
   
  这段程序在我的另一个工程中运行正常,而在现在的新工程中却提示:  
   
  实时错误‘13’  
  类型不匹配  
   
   
  请问为什么?我已经引用了  
  visual   basic   for   application  
  visual   basic   runtime   objects   and   procedures  
  visual   basic   objects   and   procedures  
  OEL   automation  
  microsoft   scriping   runtime  
  microsoft   activex   data   objects   2.0   library  
  microsoft   Dao   3.51   obdect   library  
  microsoft   data   binding   collection  
   
   
  是否还需要引用其他? 问题点数:0、回复次数:14Top

1 楼kxiangwei(小孔)回复于 2003-12-02 17:55:17 得分 0

补充:  
  错误提示指向  
  Set   myrs   =   mydb.OpenRecordset("select   *   from   电子公文表",   dbOpenDynaset)Top

2 楼taosihai1only(无招胜有招)回复于 2003-12-02 18:02:31 得分 0

引用microsoft   excel9.0Top

3 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2003-12-02 18:47:57 得分 0

你的引用够了  
   
  引用  
  microsoft   Dao   3.6   obdect   library  
  试试Top

4 楼cngxylyh(olo)回复于 2003-12-02 21:19:50 得分 0

把表名改成英文试试。Top

5 楼MrRedSnow(慕容红雪)回复于 2003-12-02 21:39:09 得分 0

不知道你先后两次运行是否在同一个系统里面,如果不在的话,查看一下你在能运行的那个工程里面所引用的ADO的版本,你上面说的ADO引用的是2.0的,不知道你原来能运行的那个版本是否引用了较高版本的ADO?Top

6 楼zhangfjj(小张)回复于 2003-12-02 21:49:17 得分 0

很久没有DAO了,找了找access帮助文件,这是在access中有关DAO编程的示例  
  Dim   db   as   Database  
  Dim   rs   as   DAO.Recordset  
  Set   db   =   CurrentDB()  
  Set   rs   =   db.OpenRecordset(“Employees”)  
   
  是不是你在声明时没有声明正确,  
  Dim   myws   As   Workspace  
  Dim   mydb   As   Database  
  Dim   myrs   As   Recordset//改成DAO.recordset?  
  建议没有必要再用DAO了,直接学习ADOTop

7 楼DemonXHunter(恶魔猎手)回复于 2003-12-02 21:54:06 得分 0

我想  
  microsoft   activex   data   objects   2.0   library  
  microsoft   Dao   3.51   obdect   library  
  这两个库里面都可能有RecordSet和Database得对象类,所以你定义的时候必须制定是那个库里面的对象  
  比如dim   myrs   as   ADO.RecordSet或者dim   myrs   as   Dao.RecordSet    
  这两种是不一样的,具体用哪个,就看  
  myws.OpenDatabase(App.Path   +   "\gongwen.mdb")返回的Database对象是哪个库里定义的了。Top

8 楼rainstormmaster(暴风雨 v2.0)回复于 2003-12-02 22:15:10 得分 0

检查你的dao的版本和mdb文件的版本,dao   3.51好象对access   2000的数据库不支持Top

9 楼rainstormmaster(暴风雨 v2.0)回复于 2003-12-02 22:17:24 得分 0

另外,DemonXHunter(恶魔猎手)   说的也很有道理,你应该这么定义:  
  Dim   myws   As   DAO.Workspace  
  Dim   mydb   As   DAO.Database  
  Dim   myrs   As   DAO.Recordset  
  以避免冲突Top

10 楼ahlegend(爱之传奇)回复于 2003-12-02 23:08:02 得分 0

Dao版本低了。Top

11 楼csdngoodnight(居然比我还快,你真行!)回复于 2004-02-19 08:43:42 得分 0

http://expert.csdn.net/Expert/topic/2009/2009932.xml?temp=.625271  
   
  ado的Top

12 楼HereWeAre(僕は生きる道)回复于 2004-02-19 09:02:00 得分 0

学习......  
  Top

13 楼kimurakenshin(浪客)回复于 2004-02-19 09:09:16 得分 0

upTop

14 楼shangshu7(shangshu007)回复于 2004-02-19 09:26:17 得分 0

学习upTop

相关问题

  • 简单!
  • 简单
  • 简单~~~
  • 简单
  • 简单!
  • 简单
  • 简单
  • 简单……
  • 简单问题不简单!
  • 简单的简单啊!

关键词

  • ado
  • 版本
  • db
  • myws
  • myrs
  • dao
  • databasedim
  • 引用
  • librarymicrosoft
  • obdect

得分解答快速导航

  • 帖主:kxiangwei

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo