Office中国论坛/Access中国论坛
标题:
请教:VBA出现"运行时错误3021"
[打印本页]
作者:
huangchao1980
时间:
2008-7-1 14:29
标题:
请教:VBA出现"运行时错误3021"
各位大侠小妹请教下, 单击窗体中的"JudgeVIP", 最后出现"运行时错误3021,当前无此记录"
[attach]30822[/attach]
Private Sub JudgeVIPStatus_click()
Dim rst As DAO.Recordset
Dim Intltdd As String
Dim IntNowdd As String
Dim dd As String
dd = "1" & Right(Format(Date, "yyyymmdd"), 6)
IntNowdd = dd
Set rst = CurrentDb.OpenRecordset("select * from vipstatus")
rst.MoveFirst
Intltdd = rst![k2icdt]
Do While (Not rst.EOF)
If Intltdd < IntNowdd Then
MsgBox Intltdd & dd & " " & IntNowdd & " " & Date & " " & Right(Format(Date, "yyyymmdd"), 6)
'DoCmd.RunSQL "update vipstatus set k2rgco='normal'"
'程序运行此处,用一个EDIT [attach]30822[/attach],日期小于当前日期的将状态更新为 "NORMAL", 这个语句怎么写? 这个SQL语句是错误的,不用了.
Else
MsgBox Intltdd
Debug.Print Intltdd
End If
rst.MoveNext
Intltdd = rst![k2icdt]
Loop
rst.Close
End Sub
[
本帖最后由 huangchao1980 于 2008-7-1 16:34 编辑
]
作者:
kangking
时间:
2008-7-1 14:43
rst.MoveNext
Intltdd = rst![k2icdt]
你将记录集中的记录移动到下一记录,然后从记录集中读取数据,但是,这时你可能已经移动到最后一条记录的后面了,再读数据时就会出错。所以,在 rst.MoveNext 后你应该看一下 eof()是否为真,如果是就是在记录集的尾了。
rst.MoveNext
if rst.eof then
'在这里处理已经到记录集尾的情况
end if
Intltdd = rst![k2icdt]
作者:
huangchao1980
时间:
2008-7-1 15:36
谢谢了!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3