我一直在为此工作大约一个小时,并且无法使函数无错运行。我从this页面使用Allen Browne的ELOOKUP功能。Allen Browne的ELOOKUP错误:太少参数
这里是代码当前正在调用的公共职能:
Dim r As Double
Dim Q1 As Double
Dim i1 As Double
r = Me!txtRepeat
Q1 = Me!txtQty1
i1 = ELookup("dblIndex", "zhqry_ActiveGrid_3_Final", "dblRepeat = " & r & " AND dblQuantity <= " & Q1, "dblQuantity DESC")
我得到的错误“过几个参数:预期1”。
我已经通过代码加强,是能够提取STRSQL这是:
SELECT TOP 1 dblIndex
FROM zhqry_ActiveGrid_3_Final
WHERE dblRepeat = 12 AND dblQuantity <= 55
ORDER BY dblQuantity DESC;
实际的错误是扔在这条线的ELOOKUP功能:
Set rs = db.OpenRecordset(strSql, dbOpenForwardOnly)
我曾尝试:
- 将方括号中的所有字段名封装起来。同样的错误。
- 围绕我的标准值添加单引号。同样的错误。
- 更改的功能行:
Set db = DBEngine(0)(0)
至set db = CurrentDb
,同样的错误。 - 更改
dbOpenForwardOnly
至dbOpenSnapshot
。同样的错误。
我将strSQL值复制到Access的查询生成器中,它运行正常,所以我知道我构建了一个有效的字符串。我正在使用Access 2010.
我在做什么错?
嗯,你有没有试过'设置rs = db.OpenRecordset(strSql)' –
@GaryEvans刚刚尝试过,同样的错误。 – MoondogsMaDawg
'zhqry_ActiveGrid_3_Final'(或其子查询)是否有像例如'形式!myForm的!myValue'?它们在Access中打开查询时进行评估,但在打开记录集时不会进行评估。 - 请参阅“ELookup()的限制:... DLookup()可以调用表达式服务来解析参数..” – Andre