Свойство Recordset.BOF (DAO)

Область применения: Access 2013, Office 2013

Возвращает значение, которое показывает, находится ли текущее положение записи курсора перед первой записью объекта Recordset. Только для чтения, Boolean.

Синтаксис

expression . BOF

expression: переменная, представляющая объект Recordset.

Комментарии

С помощью свойств BOF и EOF можно определить, содержит ли объект Recordset записи и не вышли ли вы за пределы объекта Recordset при переходе от записи к записи.

Значения, возвращаемые свойствами BOF и EOF, определяются расположением указателя текущей записи.

Если любое из свойств BOF или EOF имеет значение True, то текущей записи нет.

Если открыть объект Recordset, не содержащий записей, свойства BOF и EOF будут иметь значение True, а свойство RecordCount объекта Recordset — значение 0. Если открыть объект Recordset, содержащий хотя бы одну запись, первая запись будет текущей записью, а свойства BOF и EOF будут иметь значение False; они будут иметь значение False до тех пор, пока вы не переместитесь за начало или конец объекта Recordset с помощью метода MovePrevious или MoveNext соответственно. Если вы переместитесь за начало или конец объекта Recordset, то не будет ни текущей, ни другой записи.

Если удалить последнюю оставшуюся запись в объекте Recordset, свойства BOF и EOF могут по-прежнему иметь значение False, пока вы не попытаетесь изменить позицию текущей записи.

Если использовать метод MoveLast для объекта Recordset, содержащего записи, последняя запись станет текущей записью; если затем воспользоваться методом MoveNext, текущая запись станет недопустимой, и свойству EOF будет присвоено значение True. И наоборот, если использовать метод MoveFirst для объекта Recordset, содержащего записи, первая запись станет текущей записью; если затем воспользоваться методом MovePrevious, текущей записи не будет, и свойству BOF будет присвоено значение True.

Обычно при работе со всеми записями в объекте Recordset код проходит через все записи с помощью метода MoveNext, пока значение свойства EOF не станет равно True.

Если вы воспользуетесь методом MoveNext, когда свойство EOF имеет значение True, или методом MovePrevious, когда свойство BOF имеет значение True, возникнет ошибка.

В этой таблице показано, какие методы Move разрешено использовать при различных сочетаниях свойств BOF и EOF.

MoveFirst,
MoveLast

MovePrevious,
Move < 0


Move 0

MoveNext,
Move > 0

BOF=True,
EOF=False

Разрешено

Ошибка

Ошибка

Разрешено

BOF=False,
EOF=True

Разрешено

Разрешено

Ошибка

Ошибка

Оба свойства имеют значение True

Ошибка

Ошибка

Ошибка

Ошибка

Оба свойства имеют значение False

Разрешено

Разрешено

Разрешено

Разрешено

Разрешение использовать метод Move не означает, что этот метод успешно найдет запись. Это всего лишь значит, что попытки выполнить указанный метод Move разрешены и не приведут к возникновению ошибки. В результате выполнения методов Move состояние свойств BOF и EOF может изменяться.

Метод OpenRecordset внутренним образом вызывает метод MoveFirst. Таким образом, при использовании метода OpenRecordset для пустого набора записей свойствам BOF и EOF будет присвоено значение True. (Сведения о том, как ведет себя метод MoveFirst при его неудачном выполнении, см. в приведенной ниже таблице.)

Если любой метод Move успешно находит запись, свойствам BOF и EOF присваивается значение False.

Если в рабочей области Microsoft Access вы добавите запись в пустой объект Recordset, свойству BOF будет присвоено значение False, а свойство EOF будет по-прежнему иметь значение True, указывая на то, что текущая позиция находится в конце объекта Recordset.

Любой метод Delete, даже если он удаляет единственную оставшуюся запись из объекта Recordset, не изменяет значений свойств BOF и EOF.

В приведенной ниже таблице показано, как методы Move, которым не удалось найти запись, влияют на значения свойств BOF и EOF.

BOF

EOF

MoveFirst, MoveLast

True

True

Move 0

Без изменений

Без изменений

MovePrevious, Move< 0

True

Без изменений

MoveNext, Move> 0

Без изменений

True