Office中国论坛/Access中国论坛

标题: (已解决)请问For循环不能正常结束的原因 [打印本页]

作者: koutx    时间: 2009-4-6 11:54
标题: (已解决)请问For循环不能正常结束的原因
本帖最后由 koutx 于 2009-4-6 14:48 编辑

有表1和nrb两个表,表1中有pID字段,nrb中有id字段。表1窗体的数据源是表1,为连续窗体。通过Shift键选择2条连续的窗体记录并按Del删除时,希望连带删除nrb表中的对应id的记录。所用代码如下:
Private Sub Form_Delete(Cancel As Integer)
Dim n2 As Long
n2 = Me.SelHeight '选取的记录条数作为For循环的终点
For I = 1 To n2
    ‘MsgBox "I:    " & I & "    n2:    " & n2 & "    pID:    " & pID '监视循环参数及pID值的变化
   
    DoCmd.RunSQL "DELETE nrb.* FROM nrb WHERE id = " & Me.pID
   
    DoCmd.GoToRecord '使下一条记录成为当前
Next
End Sub
执行循环时,第一圈正确。见图一
[attach]37118[/attach]
第二圈时,循环控制值正确,但pID值仍是上一圈时的2。见图二
[attach]37119[/attach]
第三圈本不应再进行,但却未结束,I值从2又变回了1,pID值却变成了在第二圈就应变的4。见图三
[attach]37120[/attach]
最后的结果是两表中应删除的记录未按设想实现。
请高手帮助探讨并附例库。谢谢。
[attach]37121[/attach]
作者: ui    时间: 2009-4-6 20:57
是怎么解决的, 楼上给个答案呢
作者: koutx    时间: 2009-4-6 23:15
2# ui
不要For循环即可。

DoCmd.RunSQL "DELETE nrb.* FROM nrb WHERE id = " & Me.pID
     DoCmd.GoToRecord '使下一条记录成为当前




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3