我有一个基于myquery的表单,如下所示:
tom red
mike blue
joe red
假设我想点击一个按钮并显示带有文本" tom"的msgbox,然后在关闭该文本框后立即出现另一个" mike"并再次关闭将显示最后一个msgbox" joe",有没有办法用循环执行此操作?我在stackoverflow上发现了一个类似的问题,但该代码只产生了第一条记录," tom"三次。谢谢!
答案 0 :(得分:1)
假设您已经打开了记录集,以下内容将起作用:
Do While Not MyRS.EOF
Msgbox MyRS!MyName 'Note I changed your field name because you are asking for major trouble by using reserved words for field names!
MyRS.MoveNext
Loop
答案 1 :(得分:1)
我在表单上设置了一个按钮。
在按钮的“属性”窗口的“事件”选项卡上的On Click
事件中,我使用了以下代码:
Private Sub Command6_Click()
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
Do While Not rs.EOF Or rs.BOF
MsgBox rs!name
rs.MoveNext
Loop
Set rs = Nothing
End Sub
这会在表单后面复制Recordset,并遍历每条记录,显示您要求的内容。
对Wayne来说,我有点惊讶我们没有必要将rs!name
更改为rs![name]
,因为它是一个保留字。他是对的 - 你应该远离将它们用作字段(列)名称。
答案 2 :(得分:0)
这是我最终工作的代码,我只需要添加一行来修复它。
dim rs as dao.recordsetclone
rs.movefirst
do while not rs.eof
if rs!color='red' then
msgbox rs!stuff
end if
rs.movenext
loop
set rs=nothing
end sub