2012-11-24 45 views
1
SELECT Transactions.TransactionNumber 
FROM Transactions 
WHERE (((Transactions.Date)>=#11/23/12#)) AND (((Transactions.Date)<=#11/23/12#)); 

上面的代码返回所有在指定日期之间发生的交易。但是我希望每次执行查询时都要由用户定义这些日期。如何提示输入SQL查询用户输入的参数在Access 2010

我尝试使用[]运营商有用户在WHERE定义的标准,这样的事情:

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

但微软访问抛出一个语法错误消息。同样的情况,当我包括#(日期运营商)这样的

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

有anopther的方式来管理该日期我不知道的,或者要求日期的用户在查询出了问题

回答

1

请看看这个链接user input criteria in queries

您可以使用查询生成器来为你做这部分,然后在SQL编辑器工作充分。

在这种情况下,你让系统帮你做它接受用户输入的格式。

+1

我认为,这将是最直接跳到形成的输入,这种方式,用户可以从日历控件中选择日期,日期可以重复使用。这是令人沮丧的,必须多次输入相同的日期,这往往是这种情况http://stackoverflow.com/a/97350/2548 – Fionnuala

+0

所以是在上面的链接,它显示了如何使用日历控件:-) – bonCodigo

+0

是的,我看到了,如果我是一个新用户,我会放弃并回到那个级别的并发症:)已故的DW芬顿的例子看起来更容易。 – Fionnuala

0

看起来括号是语法错误的原因。尝试下面。 ((日期)> = [输入日期1]))和((日期)< = [输入日期2]));

0

发现此问题后谷歌类似的问题:在[param1]和[param2]之间使用查询返回错误的值,而params应该是日期类型。访问不知道也不识别输入参数和日期,但将它们视为文本。我也尝试编码sql staement强制识别(并且因为我们使用dd/mm/yyyy格式进行转换)而没有成功。 我解决了这个问题设置参数日期查询设计视图类型和格式功能的非必要或包含#符号在SQL语句中