发两段代码,大家研究研究!解决方法

发两段代码,大家研究研究!
代码功能:计算库存,保存出入库数据
实现思想:表中记录零件代号、入库数、出库数、结余数,每笔出入库都记录当前库存。
目前存在的问题:以前库存计算都正常,但最近有时出现库存计算错误。没有任何规律可循。如下表
ID               零件代号     日期                                               入库数量   出库数量   结余数量  
718281 703002022   2006-11-28   00:00:00.000 .0000 .0000 2424.0000
761652 703002022   2007-01-11   00:00:00.000 NULL 1000.0000 1424.0000
781405 703002022   2007-01-30   00:00:00.000 NULL 1000.0000 424.0000
782364 703002022   2007-01-31   00:00:00.000 NULL 440.0000 -16.0000
782373 703002022   2007-01-31   00:00:00.000 NULL 560.0000 -576.0000
782396 703002022   2007-01-31   00:00:00.000 NULL 1000.0000 -2176.0000   此笔错误
782727 703002022   2007-01-31   00:00:00.000 1560.0000 NULL -616.0000
782728 703002022   2007-01-31   00:00:00.000 3409.0000 NULL 2793.0000

附源代码:
'添加入库单据内容(批量入库)
Private   Sub   AddviewOrderin()
On   Error   GoTo   err:
      Dim   ctl   As   Control
      Dim   cnn   As   New   Connection
      Dim   rec   As   New   ADODB.Recordset
      Dim   srec   As   ADODB.Recordset
      Dim   rec1   As   New   ADODB.Recordset
      Dim   rec3   As   ADODB.Recordset
      Dim   irow,   icol   As   Integer
      Dim   str,   strpart   As   String
      Dim   mtlstore   As   Double
      Dim   safehstore   As   Double
      cnn.ConnectionString   =   pcnstr
      cnn.Open
      cnn.BeginTrans                                                   '开始事务
      rec.Open   "select   *   from   tbcgorderin ",   cnn,   adOpenDynamic,   adLockOptimistic
      '添加
      For   irow   =   1   To   fpin.MaxRows
            fpin.Row   =   irow
            fpin.Col   =   1
            strpart   =   fpin.Text
            If   fpin.Text   <>   " "   Then
                  rec.AddNew
                        rec.Fields( "合同号 ")   =   txt合同号
                        rec.Fields( "日期 ")   =   Date
                        rec.Fields( "记录 ")   =   Trim(PUser)
                        Set   srec   =   cnn.Execute( "select   最高库存   from   tbmaterial   where   编码= ' "   &   strpart   &   " ' ")
                        If   Not   srec.EOF   Then