设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5279|回复: 2
打印 上一主题 下一主题

[窗体] 请教:VBA出现"运行时错误3021"

[复制链接]
跳转到指定楼层
1#
发表于 2008-7-1 14:29:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠小妹请教下, 单击窗体中的"JudgeVIP", 最后出现"运行时错误3021,当前无此记录"



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 ,日期小于当前日期的将状态更新为  "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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-7-1 14:43:35 | 只看该作者
rst.MoveNext
          Intltdd = rst![k2icdt]
你将记录集中的记录移动到下一记录,然后从记录集中读取数据,但是,这时你可能已经移动到最后一条记录的后面了,再读数据时就会出错。所以,在 rst.MoveNext 后你应该看一下 eof()是否为真,如果是就是在记录集的尾了。
     rst.MoveNext
          if rst.eof then
           '在这里处理已经到记录集尾的情况
     end if
          Intltdd = rst![k2icdt]
3#
 楼主| 发表于 2008-7-1 15:36:31 | 只看该作者
谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 01:35 , Processed in 0.108317 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表