Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

nextrecordset怎么用?

文飞龙  发表于:2009-03-27 17:04:14  
复制

关于nextrecordset行为我查了很多,大部分都是用eof判断,再用set rs = rs.nextrocordset()  或者不带括号。

但都是一气生成所以的recordset记录,然后Debug.Print出来。但我的问题有些异同。

 

我情况如下:

用rs.open select语句where [ziduan1]=me.xingming....

me.xingbie=rs("ziduan1"):me.zhiwei=rs("ziduan2")......

现在如果查询到一条记录,什么话都好说,但是有时候rs("diduan1")会有两条或以上的记录。那我怎么才能通过在窗体上一个按钮点击一下,显示下一条,再点击一下显示下一条,最后时弹出对话框提示一下。

我现在的代码如下:

Private Sub cmdcx_Click()
    Dim rs As DAO.Recordset
    Dim str As String
    Set rs = CurrentDb.OpenRecordset("select * from renyuan where [xingming] like '*" & Me.xingming & "*'", dbOpenDynaset)
       If rs.RecordCount = 0 Then
            MsgBox "没有此人记录"
            Me.xingming = ""
    Me.xingbie = ""
    Me.yajin = ""
    Me.fjhao = ""
    Me.zhiwei = ""
    Me.danwei = ""
    Me.sfpkey = ""
    Me.rzriqi = ""
    Me.peiyaoshi = ""
    Me.xingming.SetFocus
            Exit Sub
        Else
            If rs.RecordCount = 1 Then
                If rs("fjhao") = "已退房" Then
                MsgBox "此人已退房,文本将显示此人的个人简单信息!"
                Me.fjhao.ForeColor = 255: Me.fjhao.FontSize = 14: Me.fjhao.FontName = "黑体"
                End If
            Else
                MsgBox "此姓名有大于等于两人的记录,此处显示第一条"
                    Do While Not rs.EOF
                    If rs("fjhao") = "已退房" Then
                    MsgBox "此人已退房,文本将显示此人的个人简单信息!"
                    Me.fjhao.ForeColor = 255: Me.fjhao.FontSize = 14: Me.fjhao.FontName = "黑体"
                    End If
                    rs.NextRecordset     '把这里改成set rs = rs.nextrecordset() 提示错误,说成员未找到!
                    Loop
            End If
        End If
    Me.xingming.BackColor = 8454016
    Me.xingbie = rs("xingbie"): Me.xingbie.BackColor = 8454016
    Me.peiyaoshi = rs("peiyaoshi"): Me.peiyaoshi.BackColor = 8454016
    Me.zhiwei = rs("zhiwei"): Me.zhiwei.BackColor = 8454016
    Me.fjhao = rs("fjhao"): Me.fjhao.BackColor = 8454016
    Me.rzriqi = rs("rzriqi"): Me.rzriqi.BackColor = 8454016
    Me.yajin = rs("yajin"): Me.yajin.BackColor = 8454016
    Me.danwei = rs("danwei"): Me.danwei.BackColor = 8454016
    Set rs = Nothing
    Me.thyajin = Me.yajin
End Sub

 

我最想知道就是如何利用rs.nextrecordset?!!!

 

Top
ACMAIN.CHM 发表于:2009-03-27 19:12:14

rs.NextRecordset '

 

改成

 

rs.movenext

 

 

建议看一下ACCESS自带帮助中的ADO手册部分的说明和例子。

 

ACCESS的知识体系

http://blog.csdn.net/ACMAIN_CHM/archive/2009/03/03/3954271.aspx

 

 


**************
*   一切皆有可能   *
**************


ACMAIN - Access论坛回贴准则(个人)


QQ群 48866293 / 12035577 / 7440532 / 13666209
http://www.accessbbs.cn/bbs/index.php
http://www.accessoft.com/bbs/index.asp
http://www.office-cn.net/vvb/?fromuid=141646
http://www.access-programmers.co.uk/forums

http://www.office-cn.net/home/space.php?uid=141646


文飞龙 发表于:2009-03-27 19:59:02

非常感谢ACCMAIN-chm为我们初学者做的帮助!

那个E文,看着就愁  不知道有没有中文的?



文飞龙 发表于:2009-03-27 21:22:52

我已经改为rs.moverecordset

也能正常运行了。

但是我还是不知道怎么讲第二条记录显示在窗体中。



总记录:3篇  页次:1/1 9 1 :