2014-02-12 22 views
0

我在Access 2010中有一个报告查询,可以让用户查看今天即将推出的估计货件的预测。用户对我的要求是,我制作一个表格,允许他们查看整个星期(周一至周五)的预测,或者他们可以选择一个日期,然后查看该未来日期的预测。从表格中选择一天以更改条款

所以基本上我想制作一个表格,用户可以选择星期几或使用日期选择器来选择特定的日期。然后利用vba更改我的SQL的where子句以生成当天的报告。

我的假设是使用一个列表框填充星期几,但由于某种原因,我觉得我接近这个错误。任何关于接近开发这个的指导或建议。

更新** enter image description here

我影像尺寸道歉。就像我说过的,我希望用户在列表框中选择星期几,然后当他们点击查看查询时,它会根据所选值更改where子句。

+0

我喜欢DatePicker的想法。有了列表框,他们还必须选择一周或某事。 – Kapol

回答

0

使用DatePicker。所有你需要做的是在SQL得到建有像这样的即时:

Dim strSQL as String 
Dim qd As QueryDef 

strSQL = "SELECT * FROM MyTable WHERE MyDateField = '#" & Me.txtMyDate & "#'" 

Set qd = CurrentDB.CreateQueryDef("MyReportQuery", strSQL) 

您现在应该有一个名为MyReportQuery查询,您可以作为记录源用于报表。好消息是,您可以对RecordSet名称进行硬编码,因为每次运行时都要重新创建它。只是不要忘记在这个检查中加入一些代码来查看查询是否已经存在,如果是的话就删除它。

编辑:为了记录在案,许多访问MVP的实际建议你这样做,删除现有查询:

On Error Resume Next 
CurrentDB.QueryDefs.Delete "MyReportQuery" 
On Error GoTo 0 ' or your own error-handler 

如果查询存在,它将被删除。如果没有,则继续下一步将强制代码忽略错误并继续。然后,您将On Error重置为您自己的错误处理程序。如果你的代码中没有错误处理程序,那么你做错了。 :o)