如何访问记录集中的值

时间:2011-05-13 01:39:42

标签: ms-access recordset

以此代码为例:

sSQL = "select CtyMarket from Market where Country = '" & Country.Value & "'"
Set rec = CurrentDb.OpenRecordset(sSQL)

此语句可以返回多个值。我如何访问这些值?

2 个答案:

答案 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