1
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]#));

是否有另一种方法来管理我不知道的日期或在查询中向用户询问日期的问题

4

3 回答 3

1

请查看此链接以了解查询中的用户输入条件

您可以使用查询生成器为您完成此部分,然后在 SQL 编辑器上完全工作。

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

于 2012-11-24T04:45:27.797 回答
0

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

WHERE (((Date)>=[Input a Date1])) AND (((Date)<=[Input a Date2]));

于 2012-11-29T21:38:25.917 回答
0

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

于 2013-06-04T08:31:32.803 回答