除非使用sql操作,否则没有办法使用事务:http://www.foxtable.com/webhelp/scr/2933.htm
上面代码优化一下,可以这样,可以有效提高运行速度
DataTables("库存").StopRedraw
DataTables("库存").Load
DataTables("出入库明细").StopRedraw
For Each dr As DataRow In DataTables("预记帐").DataRows '预记帐表是事先添加的要出库的明细
Dim cr As DataRow = DataTables("出入库明细").AddNew
cr("商品类别")=dr("商品类别")
cr("日期")=dr("日期")
cr("业务类型")="出库"
cr("商品编号")=dr("商品编号")
cr("商品名称")=dr("商品名称")
cr("会计帐务流水号")=kjz("帐务流水号")
cr("数量")=dr("销售数量")
cr("商品成本")=dr("贷方发生额")
cr("销售额")=dr("销售额")
cr("客户_名称")=dr("客户名称")
cr("客户_编号")=dr("客户编号")
cr("客户_客户经理")=dr("客户经理")
cr("流水号")="C" & Format(dr("日期"),"yyyyMMdd") & format(sz("库房流水号"),"00000")
cr("经办人")=user.Name
Dim kc As DataRow = DataTables("库存").Find("商品编号='" & dr("商品编号") & "'")
If kc IsNot Nothing Then
kc("商品库存金额")=kc("商品库存金额")-dr("贷方发生额")
kc("累计出库金额")=kc("累计出库金额") + dr("贷方发生额")
kc("商品库存")=kc("商品库存")-dr("销售数量")
kc("累计出库数量")=kc("累计出库数量") + dr("销售数量")
kc("平均进货价格")=format(kc("商品库存金额") / kc("商品库存"),"0.00")
End If
Next
DataTables("出入库明细").Save
DataTables("出入库明细").ResumeRedraw
DataTables("库存").Save
DataTables("库存").ResumeRedraw