如何在Access 2010中提示SQL查询的用户输入参数

时间:2012-11-24 04:34:31

标签: sql database ms-access ms-access-2010

SELECT Transactions.TransactionNumber
FROM Transactions
WHERE (((Transactions.Date)>=#11/23/12#)) AND (((Transactions.Date)<=#11/23/12#));

上面的代码返回指定日期之间发生的所有事务。但我希望每次执行查询时都由用户定义这些日期。

我尝试使用[]运算符让用户在WHERE中定义条件,如下所示:

WHERE (((Transactions.Date)>=[Input a Date])) AND (((Transactions.Date)<=[Input a Date]));

但是,microsoft Access会抛出语法错误消息。当我包括像这样的#(日期运算符)

时,也会发生同样的情况
WHERE (((Transactions.Date)>=#[Input a Date]#)) AND (((Transactions.Date)<=#[Input a Date]#));

是否有另外一种方法可以管理我不知道的日期或者询问用户查询中的日期

3 个答案:

答案 0 :(得分:1)

请查看user input criteria in queries

的此链接

您可以使用查询构建器为您执行此部分,然后在SQL编辑器上完全运行。

在这种情况下,您让系统帮助您执行接受用户输入的格式。

答案 1 :(得分:0)

看起来括号是语法错误的原因。请尝试以下。

WHERE(((Date)&gt; = [输入日期1]))AND(((日期)&lt; = [输入日期2]));

答案 2 :(得分:0)

发现谷歌搜索类似的问题:在[param1]和[param2]之间使用时查询returnig错误的值,而params应该是日期类型。 Access不知道也不识别输入参数广告日期,但将其视为文本。我也尝试编码sql staement来强制识别(并且因为我们使用dd / mm / yyyy格式也转换)但没有成功。 我在查询设计视图中解决了设置参数日期类型的问题,并且不需要格式函数或者在sql语句中包含#符号