我在写一个数据统计的程序,ACCESS2000数据库,用ADO对象。问题大概是这样的。
我输入当天的支出,要存入数据库。
然后计算本月的总支出。然后计算所有单位的当天支出,然后算所有单位当月总支出。反正就是一连串的数据改动。我反复看算法没有问题,调试结果没有问题,但是运行时总是会有些数据没有被改动。
===============
后来发现添加一条记录后,在查找的结果里没有此条记录。但是单步执行的时候却可以找到。后来在每个mrc.updata后加一个msgbox "xxx",vbokonly,"kk"。发现却没有数据丢失。我猜测是因为运行速度太快的原因,在执行下一条SQL命令的时候,前一条填加的数据还没有写如数据库。所以中间必须有一个时间间隔才能保证下条命令结果的正确性。不知道大家有没有碰到这种情况,大家是如何解决的。
=============================
这个程序有没有好的算法。我这样做似乎很不合理。
1,写入本部门当天支出。
2,查找本部门本月所有支出,然后求和,放入部门当月总支出。
3,查找所有部门当天支出,求和,放入总支出表的当天支出。
......总之底下改一个数据,上面的都得改。真的很麻烦,运算量大。

解决方案 »

  1.   

    已经解决了。      '效验
              Do While 1
              txtSQL = "select * from xianjin where 部门='" & bm & "' and 月=" & j & " and 日=" & i & ""
              Set mrc = ExecuteSQL(txtSQL, msgtext)
                If Not mrc.EOF Then   ‘用来判断是否已经写如数据库,添加记录时必须
                 If mrc.Fields(4) = CDbl(Text1.Text) Then  ’判断是否修改成功
                    Exit Do
                 End If
                End If
              Loop