У меня есть база данных Access 2003 с некоторым визуальным базовым кодом, использующим в ней вызовы ADO. Когда я делаюкод ошибки 3021 либо bof, либо eof является истинным или текущая запись была удалена
strsql0 = "SELECT lnk_stockitm.C_C FROM lnk_stockitm WHERE (((lnk_stockitm.C_C) Like 'T*'));"
newRS.Open strsql0, cn1, adOpenKeyset, adLockReadOnly
newRS.movelast
Я получаю эту ошибку:
3021 either bof or eof is true or the current record has been deleted
Когда я бегу точно такой же запрос в одной и той же функции без ИНЕКЕ, как это:
strsql0 = "SELECT lnk_stockitm.C_C FROM lnk_stockitm;
I получить правильный результат из 56 000 записей. Если я вставляю полное заявление SQL с предложением WHERE в обычный запрос, например, так:
SELECT lnk_stockitm.C_C FROM lnk_stockitm WHERE (((lnk_stockitm.C_C) Like 'T*'));
возвращает правильное подмножество результатов (2800 записей).
Может ли кто-нибудь сказать мне, что я делаю неправильно?
Как смущающе. Я читал об этом давным-давно, и мне не пришлось долго его использовать, я забыл. Благодарим вас за внимание к проверке EOF. Я на самом деле делаю это уже. Я просто отрубил весь код, чтобы добраться до минимального случая, вызвавшего мою ошибку, чтобы сделать это быстро и легко для людей. – Colin