gpt4 book ai didi

ms-access - 错误代码 3021 bof 或 eof 为真或当前记录已被删除

转载 作者:行者123 更新时间:2023-12-01 08:41:41 25 4
gpt4 key购买 nike

我有一个 Access 2003 数据库,其中包含一些使用 ADO 调用的可视化基本代码。当我做一个

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 条记录)。

谁能告诉我我做错了什么?

最佳答案

通配符差异是导致您从 ADO 执行的内容与在您的 access 数据库中执行的内容之间存在差异的原因。将您的语句转换为使用“%”而不是“*”。作为一般经验法则,在调用 MoveLast 之前通过检查 eof 来封装代码可能是个好主意。如果您的查询的结果为零,则每次都会被炸毁。

strsql0 = "SELECT lnk_stockitm.C_C FROM lnk_stockitm WHERE (((lnk_stockitm.C_C) Like 'T*'));"
newRS.Open strsql0, cn1, adOpenKeyset, adLockReadOnly

if not newRs.eof then
newRS.movelast
else
' do something here if necessary to handle blank results
end if

关于ms-access - 错误代码 3021 bof 或 eof 为真或当前记录已被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com