我在Access 2010中有一个报表查询,可让用户查看今天发布的估计出货量预测。用户对我的请求是,我制作了一个表单,允许他们查看整周(周一至周五)的预测,或者他们可以选择日期,然后查看该未来日期的预测。
基本上我想创建一个表单,用户可以选择星期几或使用日期选择器来选择特定日期。然后利用vba更改我的SQL的where子句以生成当天的报告。
我的假设是使用填充了一周中几天的列表框但由于某种原因我觉得我正在接近这个错误。关于制定此项目的任何指导或建议。
更新**
我为图片大小道歉。就像我说的那样,我希望用户在列表框中选择星期几,然后当他们点击查看查询时,它会根据所选的值更改where子句。
答案 0 :(得分: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的查询,您可以将其用作报表的RecordSource。好消息是,您可以对RecordSet名称进行硬编码,因为每次运行时都会重新创建它。只是不要忘记在检查中放入一些代码以查看查询是否已经存在,如果是,则删除它。
编辑:对于记录,许多Access MVP实际上建议你删除现有的查询:
On Error Resume Next
CurrentDB.QueryDefs.Delete "MyReportQuery"
On Error GoTo 0 ' or your own error-handler
如果查询存在,则会将其删除。如果没有,Resume Next将强制代码忽略错误并继续。然后重置On Error以转到您自己的错误处理程序。如果您的代码中没有错误处理程序,那么您做错了。 :O)