我有两个查询都提示用户输入开始日期和结束日期。我想将这些查询打包成一个报告(或类似的东西),以便用户只需按下仪表板上的一个按钮,它会提示他们一次开始日期/结束日期(将其传递给两个查询),然后打印查询结果。这可能吗?我一直在阅读报告,表格和宏。我想我只是开始迷惑自己。
答案 0 :(得分:1)
我更喜欢使用TempVars来设置多个查询中使用的值。
您可以通过VBA或使用宏来分配TempVar。您可以在查询中引用TempVars。
在查询中使用TempVar:
SELECT Something
FROM MyTable
WHERE MyTable.StartDate > TempVars!StartDate
使用宏设置TempVar:
使用VBA设置TempVar:
Public Sub SetTempvar()
TempVars!StartDate = #01-01-2001#
End Sub
答案 1 :(得分:1)
如果这是在报告中,您可以从报告所绑定的查询中省略过滤器,而是使用报告过滤器。
如果您将报表作为子报表对象放在表单上,那么您可以在父表单上将StartDate
和EndDate
参数作为日期选择器。然后,您可以使用Link Master/Child Fields
将它们绑定到子报表,也可以构建更精细的过滤器,并在每次更新“开始/结束日期”控件时将该过滤器应用于子报表。
答案 2 :(得分:0)
这是一种方法:
创建一个像`MyParameter'这样的全局变量和一个像这样的全局函数:
Public Function GetMyParameter() as [whatever type your parameter is]
GetMyParameter = MyParameter
End Function
在查询中使用GetMyParameter()
作为参数,并在按钮的单击事件上使用:
MyParameter = [Whatever value you want to assign to Parameter]
DoCmd.OpenQuery "Query1"
DoCmd.OpenQuery "Query2"
对于开始和结束日期,您需要两个参数。您可以将它们称为GlobalStartDate和GlobalEndDate,相应的函数可以是GetGlobalStartDate和GetGlobalEndDate。然后,您的查询条件可以使用类似BETWEEN GetGlobalStartDate() AND GetGlobalEndDate()