CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

下一条记录的问题

楼主No001(Zidane5)(Beckham7)2006-05-01 21:50:35 在 VB / 基础类 提问

我写了个[下一条记录]的按钮,现在有个问题就是:当记录已经指向最后一条记录的时候,再按按钮,不会立刻弹出"已经是最后一条记录.",而是指针从datagrid里消失,,然后再按一下,才会弹出"已经是最后一条记录."的对话框,我想是EOF判断的问题,可是怎么解决呢??请大侠指教     谢谢  
   
   
  -------------------------------------------------------------  
  Private   Sub   Command1_Click()  
  If   Data4.Recordset.EOF   =   True   Then  
  Data4.Recordset.MoveLast  
  MsgBox   "已经是最后一条记录.",   vbOKOnly,   "最后一条记录"  
  Else  
  Me.Data4.Recordset.MoveNext  
  End   If  
  End   Sub  
  -------------------------------------------------------------  
  问题点数:100、回复次数:7Top

1 楼microtry(米醋)回复于 2006-05-01 22:24:06 得分 0

楼主的要求:  
  1、记录指针离开datagrid,其实是要求记录集保持EOF状态  
  2、显示“最后一条记录”,其实是要把记录集从EOF重置回最后一条(MoveLast)  
   
  首先定义变量  
  dim   m_lngX   as   long    
     
  Private   Sub   Command1_Click()  
  Data4.Recordset.MoveNext  
  if   data4.recordset.EOF   then  
          '第一次EOF时m_lngX=1,指针会自动离开表格  
          m_lngX=m_lngX+1  
  else  
          m_lngX=0  
  endif  
  if   m_lngX>1   then  
        '第二次EOF时m_lngX=2  
        MsgBox   "已经是最后一条记录.",   vbOKOnly,   "最后一条记录"  
        '按楼主的要求MoveLast后,指针回到表格最后  
        Me.Data4.RecordsetMoveLast  
        m_lngX=0  
        '还可以加上一句:datagrid.setfocus  
  endif  
  End   Sub  
  Top

2 楼No001(Zidane5)(Beckham7)回复于 2006-05-01 22:47:45 得分 0

楼上的大侠,可能没有明白我得意思--->  
   
  我是说如果已经是最后一条记录的话,在按一下按钮,就会有对话框提示.  
   
  现在的情况是,如果记录集已经指向了最后一条记录,按一下按钮,指针消失(就是在datagrid里没有那个指向的箭头标志),然后再按一下按钮,才会有"已经到最后"的提示.  
   
  我是想如果已经是最后一条记录的话,再单击按钮,就会有提示Top

3 楼over_the_hill()回复于 2006-05-01 23:26:13 得分 0

Data4.Recordset.MoveLast的问题Top

4 楼microtry(米醋)回复于 2006-05-02 02:24:41 得分 0

明白了  
  记录指针到最后一行的时候  
  datagrid.bookmark=data4.recordset.recordcount  
   
  Private   Sub   Command1_Click()  
  If   Data4.Recordset.EOF   =   True   Then  
          '这句其实可有可无  
          Data4.Recordset.MoveLast  
           
  Else  
        if   datagrid.bookmark=data4.recordset.recordcount   then  
                MsgBox   "已经是最后一条记录.",   vbOKOnly,   "最后一条记录"  
        else    
                Me.Data4.Recordset.MoveNext  
        endif  
  End   If  
  End   Sub  
  Top

5 楼fuxc(Michael(继续迷茫))回复于 2006-05-02 03:10:36 得分 100

换一下顺序就可以拉:  
   
  -------------------------------------------------------------  
  Private   Sub   Command1_Click()  
  Me.Data4.Recordset.MoveNext  
  If   Data4.Recordset.EOF   =   True   Then  
  Data4.Recordset.MoveLast  
  MsgBox   "已经是最后一条记录.",   vbOKOnly,   "最后一条记录"  
  Else  
  End   If  
  End   Sub  
  -------------------------------------------------------------Top

6 楼fuxc(Michael(继续迷茫))回复于 2006-05-02 03:17:06 得分 0

之前  
   
  bof  
  1  
  2        
  3       <--指针  
  eof  
  -----------------  
  movenext   这时候   .eof   =   true  
   
  bof  
  1  
  2        
  3        
  eof     <--指针  
  ------------------  
  movelast把指针移到最后一条有效记录,否则下次访问recordset就出错了  
   
  bof  
  1  
  2        
  3       <--指针  
  eof      
   
  Top

7 楼No001(Zidane5)(Beckham7)回复于 2006-05-02 16:13:16 得分 0

谢谢   fuxc(Michael(继续迷茫))   (   )   信誉:99Top

相关问题

关键词

得分解答快速导航

  • 帖主:No001
  • fuxc

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo