CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

再问~~~~~~~~~一个VB+SQL server系统的数据库关闭问题~~急`~在线等~~~

楼主twismning(阿艺)2005-03-02 13:41:25 在 VB / 数据库(包含打印,安装,报表) 提问

我做的一个VB+SQL   server系统~~  
  当我要做修改一个窗口有关一个表的数据时,我打开了窗口~~但我又不想修改了~~  
  后来又修改另外一个窗口有关另一个表的数据,当我打开窗口时,出现错误~~  
  提示"实时错误'3704'"  
        "   对象关闭时,不允许操作"  
  代码错误处:"   If   mrc.EOF   =   False   Then"  
  这是什么错误~~该怎么样修改````  
   
   
  问题点数:0、回复次数:17Top

1 楼happytoy()回复于 2005-03-02 13:45:14 得分 0

这是因为你的表格已经关闭了,贴出代码,我看看。错误应该在你贴的代码的前边Top

2 楼daisy8675(莫依 沉迷)回复于 2005-03-02 13:45:40 得分 0

对象关闭的时候不允许操作,一般是因为你的recordset是关闭的  
   
  一般情况先打开recordset,比如  
  if   rs.stata<>adstateclosed   then   rs.close   '如果不是关闭状态先关闭  
  rs.open"Select   *   from   TableName",conn,3,3   'recodset再打开Tablename表  
  if   rs.eof=false   then  
  ......  
  end   ifTop

3 楼twismning(阿艺)回复于 2005-03-02 13:49:09 得分 0

Public   Sub   ShowData()  
          Dim   j   As   Integer  
          Dim   i   As   Integer  
   
          Set   mrc   =   ExecuteSQL(txtSQL,   MsgText)  
          If   mrc.EOF   =   False   Then'出错在这里  
  Top

4 楼twismning(阿艺)回复于 2005-03-02 13:56:32 得分 0

莫依::  
  我按你的加上去,提示出错:"未找到方法或数据成员"  
  If   mrc.stata   <>   adStateClosed   Then   mrc.CloseTop

5 楼twismning(阿艺)回复于 2005-03-02 14:00:41 得分 0

莫依:  
  加上去了~~  
  还是那个错误:  
  提示"实时错误'3704'"  
        "   对象关闭时,不允许操作"  
  代码错误处:"   If   mrc.EOF   =   False   Then"  
  Top

6 楼daisy8675(莫依 沉迷)回复于 2005-03-02 14:19:42 得分 0

If   mrc.stata偶写错了嘛     if   mrc.state不是stata。哈哈,偶是顺手敲的嘛:(Top

7 楼daisy8675(莫依 沉迷)回复于 2005-03-02 14:21:38 得分 0

Set   mrc   =   ExecuteSQL(txtSQL,   MsgText)???偶没看见过这样的写法,你在写function还是sub  
   
  狂倒  
   
  老老实实去open,你的写法根本有问题,是用connection去executesql的,你这什么都没得到,recordset当然是关闭的Top

8 楼twismning(阿艺)回复于 2005-03-02 14:26:13 得分 0

我在模块中定义了:  
  Public   Function   ExecuteSQL(ByVal   SQL   _  
        As   String,   MsgString   As   String)   _  
        As   ADODB.Recordset  
  'executes   SQL   and   returns   Recordset  
        Dim   cnn   As   ADODB.Connection  
        Dim   rst   As   ADODB.Recordset  
        Dim   sTokens()   As   String  
         
        On   Error   GoTo   ExecuteSQL_Error  
         
        sTokens   =   Split(SQL)  
        Set   cnn   =   New   ADODB.Connection  
        cnn.Open   ConnectString  
        If   InStr("INSERT,DELETE,UPDATE",   _  
              UCase$(sTokens(0)))   Then  
              cnn.Execute   SQL  
              MsgString   =   sTokens(0)   &   _  
                    "   query   successful"  
        Else  
              Set   rst   =   New   ADODB.Recordset  
              rst.Open   Trim$(SQL),   cnn,   _  
                    adOpenKeyset,   _  
                    adLockOptimistic  
              'rst.MoveLast           'get   RecordCount  
              Set   ExecuteSQL   =   rst  
              MsgString   =   "查询到"   &   rst.RecordCount   &   _  
                    "   条记录   "  
        End   If  
  ExecuteSQL_Exit:  
        Set   rst   =   Nothing  
        Set   cnn   =   Nothing  
        Exit   Function  
         
  ExecuteSQL_Error:  
        MsgString   =   "查询错误:   "   &   _  
              Err.Description  
        Resume   ExecuteSQL_Exit  
  End   Function  
  Top

9 楼twismning(阿艺)回复于 2005-03-02 14:28:40 得分 0

我间接打开那个窗口时,才出错~~~  
  我直接打开时不会出错~~,数据也能出现~~~~Top

10 楼myhgyp(也许是这样的,信不信由你)回复于 2005-03-02 14:31:19 得分 0

ConnectString没赋值,数据库都没打开,怎么取到数据集啊Top

11 楼twismning(阿艺)回复于 2005-03-02 14:33:08 得分 0

请指教~~说明白一点好吗?Top

12 楼daisy8675(莫依 沉迷)回复于 2005-03-02 14:38:52 得分 0

Set   rst   =   New   ADODB.Recordset  
  '这边加上if   rs.state=1   then   rs.closed   没用吗?  
              rst.Open   Trim$(SQL),   cnn,   _  
   
  觉得没必要那你这样写sub,把简单的ado操作写得艰难无比,看得偶头都大了  
  Top

13 楼twismning(阿艺)回复于 2005-03-02 14:52:09 得分 0

不行啊~~  
  那样连登录都不行了.  
    "   对象关闭时,不允许操作"  
  Top

14 楼daisy8675(莫依 沉迷)回复于 2005-03-02 15:06:39 得分 0

偶看不懂得你写的function...Top

15 楼daisy8675(莫依 沉迷)回复于 2005-03-02 15:06:51 得分 0

偶看不懂得你写的function...Top

16 楼twismning(阿艺)回复于 2005-03-02 15:08:55 得分 0

你帮我测试一下好吗?Top

17 楼twismning(阿艺)回复于 2005-03-02 15:09:31 得分 0

我发给你~~Top

相关问题

  • SQL SERVER/vb数据库编程时,数据库中Null值的处理?
  • 如何用VB代码建立SQL SERVER数据库
  • VB如何做SQL SERVER 的数据库管理程序
  • 怎样在VB中自动建立数据库(sql server)
  • 如何用vb连接sql server数据库!???(急急急)
  • ?如何用vb连接sql server数据库!???(急急急)(
  • 如何在vb中建立数据库(SQL SERVER)!
  • vb对sql server数据库addnew时出错,请高手指点
  • 用VB联SQL SERVER数据库,哪种方法最好?急问!
  • VB访问sql server 数据库一般采用什么方法

关键词

  • 代码
  • 修改
  • 数据
  • sql
  • mrc
  • stata
  • 关闭
  • executesql
  • cnn
  • rst

得分解答快速导航

  • 帖主:twismning

相关链接

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

广告也精彩

反馈

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