Office中国论坛/Access中国论坛
标题:
[求助]如何查找是否存在记录并跳出循环
[打印本页]
作者:
gdfsslec
时间:
2007-1-24 18:12
标题:
[求助]如何查找是否存在记录并跳出循环
下面的两个循环当出现找不到记录的时候怎么跳出循环呢?
inta = 0
inid = DateSerial(Year(DateAdd("m", -3, Now())), Month(DateAdd("m", -3, Now())), 1)
rs.Open "查询结果", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.MoveLast
Do Until rs.Fields("发生日期") < inid
rs.MovePrevious
Loop
Do Until inta >= (cq - 0.001) * 10000
inta = inta + rs("出货金额")
inid = rs("发生日期")
rs.MovePrevious
Loop
请高手帮忙看看!谢谢先!
作者:
gdfsslec
时间:
2007-1-24 21:59
解决了。先记录第一条,然后判断是否回到了第一条,是则跳出循环。
作者:
tz-chf
时间:
2007-1-24 22:54
Do Until rs.Fields("发生日期") < inid
rs.MovePrevious
Loop
有可能死掉
作者:
gdfsslec
时间:
2007-1-25 01:00
大师说的对!第一个循环会死啊!
作者:
gdfsslec
时间:
2007-1-25 01:11
改成这样,暂时通过,不知道还有什么隐患?
inta = 0
inidq = DateSerial(Year(DateAdd("m", -6, Now())), Month(DateAdd("m", -6, Now())), 1)
rs.Open "查询结果", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.MoveFirst
inida = rs("发生日期")
rs.MoveLast
Do Until rs.Fields("发生日期") < inidq
inid = rs("发生日期")
If inid = inida Then
MsgBox inid & "之前没有记录"
Exit Do
End If
rs.MovePrevious
Loop
Do Until inta >= (cq - 0.001) * 10000
inta = inta + rs("出货金额")
inid = rs("发生日期")
If inid = inida Then
MsgBox inid & "之前没有记录"
Exit Do
End If
rs.MovePrevious
Loop
作者:
andymark
时间:
2007-1-25 04:37
没看清你具体用意.试试先用条件筛选
inta = 0
inidq = DateSerial(Year(DateAdd("m", -6, Now())), Month(DateAdd("m", -6, Now())), 1)
rs.Open "select * from 查询结果 where 发生日期< inidq", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rs.EOF Then
MsgBox "没有记录"
Exit Sub
End If
作者:
gdfsslec
时间:
2007-1-25 22:22
谢谢andymark大师!
您给的答案正是我需要的,不仅消除隐患,而且速度也大大加快了。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3