我这个月刚刚开始使用MS Access,我有一个非常奇怪的错误。我正在尝试创建一个查询,该查询在一个表中搜索具有maxBenefit(来自不同表的字段的dsum,具有一对多关系的dsum)在一定范围内的记录。我使用DSUM函数获取maxBenefit,因为该表有一个需要加在一起的dailyBenefits字段。
这是我的功能:
maxBenefitOfQuote: Nz(DSum("[wholeYearBenefit]","tblDisabilityQuoteDailyBenefits",
"[quoteID] = " & [tblDisabilityQuotes].[ID]))
我知道该函数有效,因为它产生了正确的值。该查询还从表单中获取两个参数,以创建maxBenefits的范围。
我使用此标准限制结果:
>=[Forms]![frmDisabilityFindSimilarQuotes]![minBenefitTotal] And
<=[Forms]![frmDisabilityFindSimilarQuotes]![maxBenefitTotal]
问题是我从范围之外的maxBenefits查询得到非常奇怪的结果,或者没有返回范围内有maxBenefits的记录。如果我将minBenefitTotal设置为0并将最大BenefitTotal设置为100000000,则不会从查询返回任何记录。如果我将minBenefitTotal设置为0并将maxBenefitTotal设置为999999999,我将获得所有正确的记录。
为什么会发生这种情况?谢谢你提前。
答案 0 :(得分:0)
首先,
尝试在对CCur的调用中包装两个输入:
>=CCur([Forms]![frmDisabilityFindSimilarQuotes]![minBenefitTotal]) And
<=CCur([Forms]![frmDisabilityFindSimilarQuotes]![maxBenefitTotal])
接下来,
如果省略实际的表单输入,并将数字硬编码到条件中,它是否有效?
例如:(&gt; = 0和&lt; = 100000000)
如果有效......感觉就像一个字符串 - &gt;号码转换问题。在将其发送到查询之前,确保所有字符串输入实际上都是一个数字(通过CCur()
)。