Для навигации по CDaoRecordset используется ряд методов. Давайте рассмотрим самые простые. Но сначала давайте поговорим о записи. При работе обычно какая то запись бывает текущей. Это та запись, на которой стоит логический курсор. Этот курсор может быть и физический, на экране например. Записи расположены подряд. И, например, просматривая записи мы сдвигаем курсор. Смотрите на рисунок ниже, здесь перечислен ряд функций.
Первое это то, что у набора записей есть начало и конец. И мы должны уметь определять, что дошли до начала или конца. Начало определяет IsBof, а конец определяет IsEof. Есть маленькая тонкость в использовании этих функций. Дело в том, чтобы набор записей узнал, что он попал в конец он должен уже выйти за пределы записей, а это приведет к появлению исключения. Появится на экране табличка. Вот после этого можно будет определить, что мы дошли до конца или начала.
MoveFirst - в начало MoveLast - в конец MoveNext - вперед MovePrev - назад
Вот теперь и получается, что, чтобы дойти до конца и определить конец набора записей без всяких левых сообщений нам надо использовать и try и IsEof. Вот так например:
try { if (cDaoRset->IsEOF()) AfxMessageBox("eof"); else { cDaoRset->MoveNext(); } } catch(...) { }
В начало тоже самое, только проверка на IsBof и метод MovePrev.