对于我的学院作业,我必须在Access中创建一个数据库,我已经完成了99%的数据库,除了我坚持的这一部分。
在我的数据库中,我有一个故障单表,其中包含订单信息记录和包含日期的字段。对于我的任务,我必须创建一个从查询中读取的表单。
例如,在我的表格中我已经创建了我有2个组合框,其中的日期已从查询中提取。我需要能够下拉其中一个框并输入1个日期,然后下拉另一个框并选择一个不同的日期,按一个按钮就会生成一个报告。
我要求帮助的部分是用于在Query中查找数据的表达式。我尝试使用这个表达式,Access说太复杂了。
[Forms]![frmOrdersBetweenTwoDates]![Combo33] And [Forms]![frmOrdersBetweenTwoDates]![Combo36]
我的完整SQL查询是:
SELECT tblTickets.CustomerID, tblCustomers.FullName, tblCustomers.AddressLine1, tblTickets.OrderNumber, tblTickets.OrderDate
FROM tblCustomers INNER JOIN tblTickets ON tblCustomers.[CustomerID] = tblTickets.[CustomerID]
WHERE ((("WHERE [OrderDate]") Between [Forms]![frmOrdersBetweenTwoDates]![Combo52] And [Forms]![frmOrdersBetweenTwoDates]![Combo54]));
我的表达式/查询现在返回报告,但报告中没有数据。我怎么能解决这个问题?
干杯。
答案 0 :(得分:0)
应该发布完整的查询语句。期望filter子句应该是:
WHERE [date fieldname] BETWEEN [Forms]![frmOrdersBetweenTwoDates]![Combo33] AND [Forms]![frmOrdersBetweenTwoDates]![Combo36]
但是,我不使用动态参数化查询。我更喜欢在VBA中使用OpenReport的WHERE参数(对于OpenForm也是如此):
DoCmd.OpenReport "report name", , , "[date fieldname] BETWEEN #" & Me.Combo33 & "# AND #" & Me.Combo36 & "#"