以此代码为例:
sSQL = "select CtyMarket from Market where Country = '" & Country.Value & "'"
Set rec = CurrentDb.OpenRecordset(sSQL)
此语句可以返回多个值。我如何访问这些值?
答案 0 :(得分:4)
好吧,为了获得所有值,您可以浏览记录集中的字段和记录。它可能看起来像那样:
'You'll need to declare a new variable
Dim i as long
If rec.EOF and rec.BOF then
Else
do while not rec.EOF
for i = 0 to rec.fields.count - 1
debug.print rec.fields(i).value
next i
rec.movenext
loop
endif
获取数据的其他方法是使用记录集对象的getrows和\或getstring metyhods,但我不记得这些是否可用于DAO记录集。您还可以为特定字段等上的特定值设置过滤器
答案 1 :(得分:3)
我在读取记录集时使用此函数不关心NULL值:
Public Function toStr(pVar_In As Variant) As String
On Error Resume Next
toStr = CStr(pVar_In)
End Function
永远不要相信rec.recordcount
的确切数量,但rec.RecordCount>0
是安全的。这就是为什么在使用记录集时永远不会使用for循环的原因。如果您想知道记录数量,那么首先要做的是rec.movelast
然后rec.movefirst
我知道有两种不同的方式:
While not rec.eof
msgbox toStr(rec!CtyMarket)
rec.moveNext
Wend
或
While not rec.eof
msgbox toStr(rec.fields("CtyMarket").value)
rec.moveNext
Wend