使用vb6.0中的数据环境时,设计了一个命令,返回的是数据集,假设为rstable
然后在窗体上定义了一个按钮,事件触发如下dim rs as adodb.recordset
set rs=rstable
with rs
.addnew
....
end with
可是系统报错:不能在一个已经关闭的对象上进行操作
可是在另一个窗体上同样的语句又能使用?这是不是vb的bug
是不是说明数据环境虽然好用,可是不稳定,还是我在设置上有什么错?
请指点

解决方案 »

  1.   

    应该是你的问题,你在哪里定义rstable的?注意检查rstable的作用范围
      

  2.   

    对,你应的rstable有没有定义了?如果定义了,那把dim rs as adodb.recordset
    改成dim rs as new adodb.recordset试试
      

  3.   

    dim rs as adodb.recordset
    set rs=数据环境名.rstable
    with rs
      if not (.state and adStateOpen) then rs.open
      .addnew
      ....
    end with
      

  4.   

    比如数据环境是deOrderAccess
    GetCatalogItem是deccommand这段代码在类模块中 OrderAccess.OrderModifyPublic Sub GetCatalogItem(rsCatalog As ADODB.Recordset)
        deOrderAccess.rsGetCatalogItem.Open
        Set rsCatalog = deOrderAccess.rsGetCatalogItem
        deOrderAccess.rsGetCatalogItem.Close
    End Subform中
    Dim oOrderModify As OrderAccess.OrderModify
    Dim rsCatalog As ADODB.RecordsetPrivate Sub Form_Load()
        Set oOrderModify = New OrderAccess.OrderModify
        oOrderModify.GetCatalogItem rsCatalog
        rsCatalog.Open
    End Sub
      

  5.   

    dim rs as adodb.recordset
    set rs=rstable
    if rs.state=1 then
    with rs
    .addnew
    ....
    end with
    endif
    -----------//主要可能是你的rstable作用域的问题吧