vb6.0,win98se,下面是语句:
我要做的就是把入库临时表的数量加到现在库存表的数量上去,从而实现入库。
----->>
public cn1 as new ado.connection
private sub command1_click()
        if cn1.state=1 then cn1.close
           cn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\fuao2\fuao2.mdb;Persist Security Info=False" //初始化cn1            cn1.Execute "update (select * from 库存表 inner join 入库临时表 on 库存表.代码=入库临时表.代码) set 库存表.库存量=trim(str(val(库存表.库存量)+val(入库临时表.数量)))"end sub
执行上面的语句,有时候能够成功,有时候就出错,提示“该集合中找不到该项目”,在很多情况下,都是成功的,操作方法一样,就是偶尔出错,不知道为什么。
还有就是:这个程序是从别的电脑上调过来,不知道是否有影响,两台电脑联网,
主机这个程序建立快捷方式,然后客户端掉用这个快捷方式,也就是入库利用另一台电脑管理。
=========================================================================
清高手指点。

解决方案 »

  1.   

    我觉得是不是inner join语句有问题呢?
      

  2.   

    我在本几调试无数次,均无错误,即使在出错的那台电脑上也不是总是出做,谁也不到什么时候就出错,很多情况下都是正常的,我把每一步都进了纪录,结果发现为出在这一块。势必要安装sp5才能够正常的使用ole db4.0?
      

  3.   

    cn1.Execute "update (select * from 库存表 inner join 入库临时表 on 库存表.代码=入库临时表.代码) set 库存表.库存量=rtrim(str(库存表.库存量+入库临时表.数量))"
      

  4.   

    在表格中数量和库存量都是字符串的,所以要转换,我希望高手们注意就是是不是因为
    1、没有安装sp5,所以直接使用microsoft jet oledb4.0引擎不行呢?
    2、这个程序适应的时候并不是本机的,而是利用双机联网从另一台电脑上调用的;这会不会有影响呢?还就是出错提示“项目找不到”,实际上肯定是存在的,否则不可能说大多数时候正确。
    清高手指点
      

  5.   

    用的数据库是
    accsess,出错“在集合中找不到该项目”
    还有那位高手知道上面的错误地errnumber是多少?我做一个on error出来。
    谢谢关注。
      

  6.   

    select * from 库存表 inner join 入库临时表 on 库存表.代码=入库临时表.代码) 
    检查一下是不是以上要求记录为空的时候出现的
      

  7.   

    两台电脑联网是不是同时使用,出错时是不是都是同时使用时出现?
    如是如此,则可能是同时使用时共享冲突!
    该问题应该与装SP5无关!
    还有就是转换数据时是否存在NULL,请注意一下!
      

  8.   

    我测试了,上面的情况
    怎么出现,都不出错,因为
    cn.execud...语句
    回自己处理的。
    看来不是那里的问题。
      

  9.   

    语句无错处,最好能加上错误处理,用MSDN查查
      

  10.   

    我知道你的问题所在,我也遇到过,这是因为你程序里面的recordset调用的是上一个recordset,并非你认为的那个记录集,这就造成你说的现象。解决办法,多定义几个RS对象,对每一个记录集实用不同的RS。或者你要确定你要彻底关闭、释放了原来的记录集。
    应该是这个问题
      

  11.   

    accsess,出错“在集合中找不到该项目”的ErrNumber:3265
    原因是,在对表中字段进行新增,更新时,若无对应的字段,则会出现此错误
      

  12.   

    TO axer(kingrow) :
    我觉得你说的有道理,我试一试〉。
    感谢高手们的指点,,