我收到了一些数据:
rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
If Not rs.EOF Then
MsgBox rs.Fields("rowid")
End If
如果rs.filter
返回多条记录,我如何让rs.fields("rowid")
给我多个rowid值?
答案 0 :(得分:2)
do while not (rs.eof and not rs.bof)
MsgBox rs.Fields("rowid")
rs.movenext()
end while
语法可能不对,但这就是想法。
答案 1 :(得分:1)
如果您只是调用rs.Fields("rowId")
,那么您实际上是在询问当前行的列值,该值可能是第一行。假设记录集返回10行,您想对每行的rowId值做什么?在消息框中显示每个?这意味着10个消息框。如果这真的是你想要做的,你会做类似的事情:
rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
Do Until rs.EOF
MsgBox rs.Fields("rowid").Value
rs.MoveNext
Loop
这假定rs
是仅向前记录集。如果您使用的是键集游标,则可能需要调用MoveFirst()。
rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
rs.MoveFirst()
Do Until rs.EOF
MsgBox rs.Fields("rowid").Value
rs.MoveNext
Loop
答案 2 :(得分:1)
这是ADO,因此请使用GetString:
MsgBox rs.GetString
首先检查是否有一些记录被退回。