【发布时间】:2015-04-21 17:44:19
【问题描述】:
我有一个包含多个输入的表单,然后将其传递给查询。这非常简单,除了我希望在我的 sql 中的 IN 语句中使用我的参数之一,如下所示:
Select sum(id) as numobs from table where year=[form]![form1]![year] and (group in([form]![form1]![group]));
当 [form]![form1]![group]="3,4" 它查询 "group in(34)" 并且如果 [form]![form1]![group]="3, 4" 然后我收到一条错误消息,提示“此表达式键入错误,或者它太复杂而无法评估...”
我希望能够在表单的字段中输入多个用逗号分隔的数字,然后让查询在 IN 语句中使用结果。这看起来可行吗?
我知道使用 VBA 我可以做 if-then 语句来查看组数的每个可能组合(有超过 40 个组,因此组合起来有超过 4 万亿种方法可以组合 40 多个组,因为 42 的总和选择 k从 0 到 42 超过 4 万亿)所以使用 IN 语句似乎是一个更好的选择。
关于如何让 IN 语句与表单中的参数一起工作的任何想法?
谢谢
【问题讨论】:
-
你的意思是
group in (3, 4)?我不知道 Access 是否支持多值参数,但这可能是您应该关注的。即使您最终使用 VBA,也不需要 4 万亿次测试。 -
链接说 in(3, 4) 是正确的不是 in (3, 4)
-
空间不大,大部分SQL都是用它写的。不过我担心逗号:你写了
34,这可能会变成一个完全不同的问题。 -
这里是一些建议的方法。你也可以尝试另一种方法,用你的“组”的值填充另一个表并使用
IN (select group from <mygroups>)。 support.microsoft.com/en-us/kb/210530
标签: sql ms-access vba ms-access-2010