Проверьте, содержит ли набор записей ADODB значение в VBA - PullRequest
0 голосов
/ 10 июля 2019

У меня есть Набор записей , который имеет 1 столбец / поле данных / записей.

В зависимости от выбранного диапазона дат он может содержать до сотни или тысячи строковых значений.

Затем я клонирую эти данные в Поток (как объяснено в ответе на другой вопрос), чтобы сохранить их и повторно использовать Набор записей. Этот поток может быть превращен обратно в новый набор записей, если необходимо, или (возможно) в какой-то массив.

Позже в коде мне нужно проверить, есть ли какие-либо значения в этом потоке / наборе записей / массиве и т. Д.

Кроме преобразования потока обратно в набор записей и использования обычного цикла с Recordset.Move методы ( пример ), чтобы проверить, находятся ли каждое из этих значений в сохраненных данные, есть ли другой более эффективный способ проверить это?

1 Ответ

2 голосов
/ 10 июля 2019

С Документация Microsoft :

Используйте свойства 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
...