|
以下这段代码用在ACCESS的mdb后端,使用正常,n.Update 这一句可以更新数据。现在我把ACCESS 2000的后端升迁到sql 2000,这段代码依然可以运行,但是 n.Update 这一句已经不能更新数据了。我查阅aaccess帮助:
记录集类型 | 基于 SQL 数据 | 基于 Jet 数据 | ADO | 读/写(1) | 只读 | DAO | N/A | 读/写 |
可知在DAO记录集基于SQL数据时读写的状态不可知,需要改写成ADO记录集类型或DAO记录集类型,基于JET数据,我不太懂如何改写,请大侠们出手代劳。这一段代码基于窗体来循序处理数据更新非常直观。
Dim fphj
Dim n As DAO.Recordset
fphj = 0
If [20到款资料].Form![到款金额] > 0 Then
Set n = [20商品资料].Form.Recordset
n.MoveLast '移动到最后一笔
n.MoveFirst '再移动回第一笔
Do Until n.EOF '逐笔处理
n.Edit '设定为可编辑状态
If [20到款资料].Form![到款金额合计] - fphj >= [20商品资料].Form.发货金额 Then '如果到款总计-分配到款累计大于本笔发货金额 则
[20商品资料].Form![分配到款金额] = [20商品资料].Form.发货金额
fphj = fphj + [20商品资料].Form.发货金额 '分配到款累加
Else
[20商品资料].Form![分配到款金额] = [20到款资料].Form![到款金额合计] - fphj '本笔分配到款=到款总计余额
Exit Do
End If '结束处理
n.Update '储存
n.MoveNext '下一笔
Loop |
|