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