| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3174 人关注过本帖
标题:关于movenext的一点小问题
取消只看楼主 加入收藏
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
结帖率:77.78%
收藏
 问题点数:0 回复次数:4 
关于movenext的一点小问题
这是我写的移动到下一条的代码,有点小问题不满意,点一次会自动移动到下一条记录,如果中间有N条记录不满足条件,也需要点击N次后才会在窗体显示我需要的记录,白白点击的这么多次窗体text内容不会变动(当然我也不需要让它变动)。我的想法是有什么法子,会跳过这中间的N个不满足条件的记录一次性跳到满足条件的记录并在窗体显示出来,真抠老壳!请大侠相助!
Private Sub Cmd_Next_Click()
    'If rst.State = adStateOpen Then rst.Close
    'rst.Open "SELECT * FROM GzTable where 来往单位=' & Com_Sz.Text'", conn, adOpenKeyset, adLockOptimistic
    If rst.BOF = False And rst.EOF = False Then
        If rst.Fields("来往单位").Value = Com_Sz.Text And rst.Fields("是否结账").Value = False Then
            Txt_JE.Text = rst.Fields("挂账金额").Value
            Txt_Rq.Text = rst.Fields("日期").Value
            Txt_Qd.Text = rst.Fields("签单人").Value
            Txt_Lm.Text = rst.Fields("挂账类目").Value
            Txt_Bz.Text = rst.Fields("备注").Value
        End If
    End If
    If rst.EOF = True Then
        MsgBox "已经是最后一条记录了!!", vbCritical + vbOKOnly, "提示"
    Else
        rst.MoveNext
    End If
End Sub
2016-11-01 21:17
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
收藏
得分:0 
回复 2楼 ZHRXJR
我发现选择com_sz的“挂账单位”后在窗体显示的是满足条件的最后一条记录,代码如下:
Private Sub Com_sz_click()
    If rst.State = adStateOpen Then rst.Close
    rst.Open "SELECT * FROM GzTable", conn, adOpenKeyset, adLockOptimistic
    If Not rst.EOF Then
        rst.MoveFirst
    End If
    For intloop1 = 0 To rst.RecordCount - 1
        If rst.Fields("来往单位").Value = Com_Sz.Text And rst.Fields("是否结账").Value = False Then
            Txt_JE.Text = rst.Fields("挂账金额").Value
            Txt_Rq.Text = rst.Fields("日期").Value
            Txt_Qd.Text = rst.Fields("签单人").Value
            Txt_Lm.Text = rst.Fields("挂账类目").Value
            Txt_Bz.Text = rst.Fields("备注").Value
            
        End If
        rst.MoveNext
    Next intloop1
End Sub
同时还有个"上一条"按钮,这个怎么解决?按照你的代码我试验了一次,存在一点小问题:1、好像只是点击第一次“下一条“的时候有效,后面就不行了;2、“上一条”和"下一条"不能自由的点击,点了“上一条”后再点击“下一条”不能返回!
不好意思,我是半壶水,问题有点多哈!

[此贴子已经被作者于2016-11-1 22:18编辑过]

2016-11-01 22:12
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
收藏
得分:0 
回复 4楼 xzlxzlxzl
有点小问题,这样判断eof或者bof会出错!
2016-11-01 22:55
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
收藏
得分:0 
感谢xzlxzlxzl和ZHRXJR的鼎力支持!终于解决了所有的问题,又加了一条判断语句,分享一下:
Private Sub Cmd_Prev_Click()
    Do While Not rst.BOF
         rst.MovePrevious
         If rst.BOF = False And rst.EOF = False Then '记录集向上的方法,可能拼写错误
            If rst.Fields("来往单位").Value = Com_Sz.Text And rst.Fields("是否结账").Value = False Then
             Txt_JE.Text = rst.Fields("挂账金额").Value
             Txt_Rq.Text = rst.Fields("日期").Value
             Txt_Qd.Text = rst.Fields("签单人").Value
             Txt_Lm.Text = rst.Fields("挂账类目").Value
             Txt_Bz.Text = rst.Fields("备注").Value
             Exit Do
         End If
         End If
      Loop
      If rst.BOF Then MsgBox "已经是第一条记录了!!", vbCritical + vbOKOnly, "提示"
End Sub

Private Sub Cmd_Next_Click()
   Do While Not rst.EOF
         rst.MoveNext
         If rst.BOF = False And rst.EOF = False Then
         If rst.Fields("来往单位").Value = Com_Sz.Text And rst.Fields("是否结账").Value = False Then
             Txt_JE.Text = rst.Fields("挂账金额").Value
             Txt_Rq.Text = rst.Fields("日期").Value
             Txt_Qd.Text = rst.Fields("签单人").Value
             Txt_Lm.Text = rst.Fields("挂账类目").Value
             Txt_Bz.Text = rst.Fields("备注").Value
             Exit Do
         End If
         End If
      Loop
      If rst.EOF Then MsgBox "已经是最后一条记录了!", vbCritical + vbOKOnly, "提示"
End Sub
2016-11-01 23:04
huangyz_xy
Rank: 2
等 级:论坛游民
帖 子:101
专家分:30
注 册:2016-10-2
收藏
得分:0 
回复 8楼 ZHRXJR
谢谢,看看你的实现方法,有你更精彩!
2016-11-02 11:42
快速回复:关于movenext的一点小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018601 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved