繁体   English   中英

检查ADODB记录集是否包含VBA中的值

[英]Check if ADODB Recordset contains value in VBA

我有一个Recordset ,其中有1列/数据/记录的字段。

根据所选择的日期范围,它最多可具有hundreads或数千个字符串值。

然后,我将该数据克隆到Stream中 (如对另一个问题的回答中所述)以保留数据并重用Recordset。 如果需要,可以将该Stream重新转换为新的Recordset,或者(可能)将其转换为某种数组。

稍后在代码中,我需要检查该Stream / Recordset / Array / etc中是否包含某些值。

除了将Stream重新转换为Recordset并使用Recordset.Move方法示例 )使用普通循环来检查存储的数据中是否包含这些值之外,还有其他更有效的方法来检查它吗?

Microsoft的文档中

使用BOFEOF属性来确定Recordset对象是否包含记录,或者从记录移到记录时是否超出了Recordset对象的限制。

如果当前记录位置在第一条记录之前,则BOF属性返回True (-1);如果当前记录位置在第一条记录上或之后,则BOF属性返回False (0)。

如果当前记录位置在最后一条记录之后,则EOF属性返回True;如果当前记录位置在最后一条记录上或之前,则EOF属性返回False

如果BOFEOF属性为True ,则没有当前记录。


因此,您可以检查这些属性中的任何一个是否为true,那么您将知道没有当前记录。

或者,您可以做相反的事情,并检查是否都不正确。 例:

If Not Rs.BOF And Not Rs.EOF Then
    ' Do something with your recordset
End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM