【问题标题】:Pass parameters to multiple queries in Access 2010?将参数传递给 Access 2010 中的多个查询?
【发布时间】:2018-03-23 15:09:37
【问题描述】:

我有两个查询都提示用户输入开始日期和结束日期。我想将这些查询打包成一个报告(或类似的东西),以便用户只需按下仪表板上的一个按钮,它就会提示他们输入开始日期/结束日期一次(将其传递给两个查询),然后打印查询结果。这可能吗?我一直在阅读报告、表格和宏。我想我刚刚开始迷惑自己了。

【问题讨论】:

    标签: ms-access ms-access-2010


    【解决方案1】:

    如果这是在报告中,您可以在您的报告绑定到的查询中省略过滤器,而使用报告过滤器。

    如果您将报表作为子报表对象放在表单上,​​那么您可以将 StartDateEndDate 参数设置为父表单上的日期选择器。然后,您可以使用 Link Master/Child Fields 将它们绑定到子报告,或者您可以构建更精细的过滤器,并在每次更新开始/结束日期控件时将该过滤器应用于子报告。

    【讨论】:

    • 这听起来像我要找的。我最终构建了一个报告,并且在生成它时必须多次输入日期。作为 Access 的新手,我将不得不使用 Google 来弄清楚您具体在说什么以及如何执行/查找这些字段。我会继续努力的。至少我知道这是可能的。谢谢!
    【解决方案2】:

    我更喜欢使用 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
    

    【讨论】:

      【解决方案3】:

      这是一种方法:

      创建一个像 `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()

      【讨论】:

        猜你喜欢
        • 2014-08-31
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-18
        相关资源
        最近更新 更多