我有一个Recordset,其中有1列/字段的数据/记录。
根据所选择的日期范围,它最多具有大约hundreads或数千个字符串值。
然后我将该数据克隆到Stream(如另一个问题的answer中所述)以保留数据并重用Recordset。如果需要,可以将该Stream转换回新的Recordset,或者(可能)将其转换为某种数组。
稍后在代码中,我需要检查该Stream / Recordset / Array / etc中是否有某些值。
除了将Stream转换回Recordset并使用带有Recordset.Move methods(example)的常规循环来检查存储的数据中是否包含这些值之外,还有其他内容吗?有效的方法来检查它?
答案 0 :(得分:2)
使用 BOF 和 EOF 属性来确定 Recordset 对象是否包含记录,或者您是否超出了的限制在记录之间移动时> Recordset 对象。
如果当前记录位置在第一条记录之前, BOF 属性将返回 True (-1),如果当前记录位置在第一条记录之前,则返回 False (0)。当前记录位置在第一条记录上或之后。
如果当前记录位置在最后一条记录之后, EOF 属性将返回 True ,如果当前记录位置在或之前在 False 最后一条记录。
如果 BOF 或 EOF 属性为 True ,则没有当前记录。
因此,您可以检查这些属性中的任何一个是否为真,那么您将知道没有当前记录。
或者您可以做相反的事情,并检查是否都不正确。示例:
If Not Rs.BOF And Not Rs.EOF Then
' Do something with your recordset
End If