我有一個使用ADO調用的可視基本代碼的Access 2003數據庫。當我做了錯誤代碼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
當我運行在相同的功能完全相同的查詢,而WHERE子句,像這樣:
strsql0 = "SELECT lnk_stockitm.C_C FROM lnk_stockitm;
我得到56,000條記錄的正確結果。如果我用粘貼WHERE子句完整的SQL語句轉換成常規查詢,像這樣:
SELECT lnk_stockitm.C_C FROM lnk_stockitm WHERE (((lnk_stockitm.C_C) Like 'T*'));
它返回的結果(2800條記錄)的正確的子集。
誰能告訴我我做錯了什麼?
多麼尷尬。我很久以前就讀過這方面的內容,並且沒有必要長時間使用它,我忘記了。 感謝您的領導,首先檢查EOF。我實際上已經這樣做了。我只是刪除了所有的代碼,以達到導致我的錯誤的最小案例,讓人們快速輕鬆地查看。 – Colin 2009-11-12 15:03:02