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

“对象变量或with块变量未设置”是什么意思?

楼主bluebill(天蓝蓝,海蓝蓝)2001-12-02 14:53:05 在 VB / 基础类 提问

用VB开发了一个小型的学生资料管理系统,进行查询时老是提示“对象变量或with块变量未设置”用DAO方法连接的数据库 问题点数:40、回复次数:14Top

1 楼MyLf(不睡觉的鱼)回复于 2001-12-02 15:01:01 得分 5

就是變量沒有定義啊,或者有的變量沒有設置新的實例(New)   ,仔細檢查一下Top

2 楼IMHELLFIRE(真正的用户痛恨真正的程序员。)回复于 2001-12-02 15:02:19 得分 0

我想可能是没初始化好Top

3 楼Amoon(阿木(0_o 治安是我扰乱的 o_0))回复于 2001-12-02 15:07:03 得分 0

是你定义的对象变量没有实例化。  
  Top

4 楼bluebill(天蓝蓝,海蓝蓝)回复于 2001-12-02 15:09:36 得分 0

Option   Explicit  
   
  Public   db   As   Database  
  Public   rs1   As   Recordset,   rs2   As   Recordset,   rs3   As   Recordset  
   
  Private   Sub   Command1_Click()  
  Dim   num   As   String  
  On   Error   GoTo   commanderror  
   
  num   =   InputBox$("请输入学号",   "学号搜索",   "001")  
  If   num   <>   ""   Then  
      num   =   "学号="   &   "'"   &   num   &   "'"  
  rs1.FindFirst   num  
  If   Not   rs1.NoMatch   Then  
  Displayrecord  
  Else  
  MsgBox   "目前没有这个学号的学生数据“,vbokonly+vbexclamation,"""  
  End   If  
   
  End   If  
   
  Exit   Sub  
  commanderror:  
  MsgBox   Err.Description  
   
  End   Sub  
   
  Private   Sub   Command8_Click()  
  On   Error   GoTo   commanderror  
  Form2.Enabled   =   True  
  Unload   Form1  
  Exit   Sub  
  commanderror:  
  MsgBox   Err.Description  
  End   Sub  
   
  Private   Sub   Form_Load()  
  On   Error   GoTo   loaderror  
  Dim   sql   As   String  
  sql   =   "SElECT   学籍.*   Form   学籍   order   by   学籍.学号"  
  Set   rs1   =   db.OpenRecordset(sql,   dbOpenDynaset)  
  If   rs1.RecordCount   >   0   Then  
    Displayrecord  
  Else  
    MsgBox   "目前没有任何学生的学籍数据"  
    rs1.AddNew  
    End   If  
  Exit   Sub  
  loaderror:  
  MsgBox   Err.Description  
  End   Sub  
   
  Public   Sub   Displayrecord()  
  Dim   i   As   Integer  
  For   i   =   0   To   18  
      If   Not   IsNull(rs1.Fields(i))   Then   Text1(i)   =   rs1.Fields(i)   Else   Text1(i)   =   ""  
   
   
  Next  
   
  End   Sub  
   
  Public   Sub   cleardisplay()  
  Dim   i   As   Integer  
  For   i   =   0   To   18  
    Text1(i)   =   ""  
    Next  
     
  End   Sub  
   
   
   
  Option   Explicit  
  Public   addrecord   As   Boolean  
  Public   modifyrecord   As   Boolean  
  Public   rs1   As   Recordset,   rs2   As   Recordset,   rs3   As   Recordset  
  Public   db   As   Database  
     
   
  Private   Sub   Command1_Click()  
  Form1.Show  
  Form2.Enabled   =   False  
  End   Sub  
   
  Private   Sub   Command2_Click()  
  db.Close  
  End  
  End   Sub  
   
  Private   Sub   Form_Load()  
  On   Error   GoTo   loaderror  
  Set   db   =   OpenDatabase("f:\myvb\学籍.mdb",   True,   False)  
  Exit   Sub  
  loaderror:  
      MsgBox   Err.Description  
  End   Sub  
   
  Private   Sub   学籍管理_Click()  
  Form1.Show  
  Form2.Enabled   =   False  
  End   Sub  
   
   
    源码全部在这儿了,请两位高人赐教Top

5 楼bluebill(天蓝蓝,海蓝蓝)回复于 2001-12-02 15:10:51 得分 0

一共有两个窗体,一个access数据库。Top

6 楼atyzy(笑闹江湖)回复于 2001-12-02 15:11:00 得分 5

with   什么?  
  找一下哪个对象在你的程序里有没有,比如with   adodc1.recordset  
  你就要找一下有没有adodc1Top

7 楼atyzy(笑闹江湖)回复于 2001-12-02 15:16:07 得分 0

好像是变量没有定义,找到那个变量,定义一下不就完了?  
  Top

8 楼bluebill(天蓝蓝,海蓝蓝)回复于 2001-12-02 15:19:27 得分 0

If   num   <>   ""   Then  
      num   =   "学号="   &   "'"   &   num   &   "'"  
  rs1.FindFirst   num  
   
  是不是&的错误Top

9 楼xiaojian(萧剑)回复于 2001-12-02 15:25:44 得分 10

问题出在你并没有很好地理解VB中变量的设置!!!  
  Form1中的公有db变量和Form2中的公有db变量是两码事,你如果想在Form1中使用Form2中的db变量,并不需要在Form1中再设置Public   db   as   Datebase,而只要用下面这句话:  
   
  Private   Sub   Form_Load()  
    ……  
    Set   rs1   =   Form2.db.OpenRecordset(sql,   dbOpenDynaset)  
         ~~~~~~  
          ……  
  End   SubTop

10 楼xiaojian(萧剑)回复于 2001-12-02 15:31:17 得分 20

  顺便提醒一句:  
    以后在调试程序的时候可以先不设错误捕获(On   Error   Goto   ...),这样你在调试过程中就可以知道错误发生在哪一行了。  
    如果你已经设置了错误捕获(或者你想先设置错误捕获,以防以后忘记),你可以在调试过程中,将错误捕获换种方式:在“代码”窗中点击右键-->“切换”-->“发生错误时中断”。Top

11 楼xiaojian(萧剑)回复于 2001-12-02 15:32:37 得分 0

哪个学校的?Top

12 楼bluebill(天蓝蓝,海蓝蓝)回复于 2001-12-02 15:39:48 得分 0

多谢各位,尤其是萧剑。  
  Top

13 楼bluebill(天蓝蓝,海蓝蓝)回复于 2001-12-02 15:42:42 得分 0

结帐!!!Top

14 楼bluebill(天蓝蓝,海蓝蓝)回复于 2001-12-02 15:48:11 得分 0

to   :萧剑  
  郑州大学的   帮老师做得,以前没有系统看过VB,刚开始两个星期,以后还请多多指教!Top

相关问题

  • 对象变量未设置??
  • 实时错误‘91’:对象变量或WITH变量未设置。
  • “未设置对象变量或With Block变量”
  • 对象变量或With块变量未设置的错误!
  • 奇怪--对象变量或With块变量未设置
  • 使用Active X控件时出现“未设置对象变量或With block变量”
  • adodc运行时错误91未设置对象变量或WITH BLOCK变量
  • adodc 运行时错误91 未设置对象变量或WITH BLOCK变量???
  • 还是环境变量设置问题!不好意思!!
  • 对象变量没设置Object variable not set 进来看下。谢谢!

关键词

  • 学号
  • 学生
  • db
  • vb
  • sql
  • 变量
  • 捕获
  • 错误
  • 设置
  • descriptionend

得分解答快速导航

  • 帖主:bluebill
  • MyLf
  • atyzy
  • xiaojian
  • xiaojian

相关链接

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

广告也精彩

反馈

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