首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多选项MS Access报表

多选项MS Access报表
EN

Stack Overflow用户
提问于 2013-04-10 03:17:46
回答 1查看 100关注 0票数 1

我是MS Access的新手,但已经(松散地)在数据库上工作了一段时间。我们有一个追踪会员资格的数据库。有一个表格,里面有所有的会员信息。当添加新客户和当前客户时,或为本年度支付费用时,该信息将应用于“PaidYear”列。多年来,我一直在添加一个列出当前年份成员的查询,并添加一个显示查询输出的报告。

我想创建一个报告,我可以在其中(可能使用下拉菜单)选择活动年份和其他选项,如城市、公司名称、电话号码等。有什么方法可以简单地进行设置吗?它必须足够简单,以便我的替代品能够直观地使用。即:

选择年份成员报表<--下拉列表

城市电话<-报告的额外选项

我已经使用它一段时间了,虽然我可以设置设计,但我不能设置功能。非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-10 10:17:13

是的,如果你想过滤你的报表,你可以写一点VBA来打开你的带有过滤器的报表(你不需要使用参数查询。在查询执行级别执行此操作可能更有效,但据我所知,性能与只运行完整查询并在打开的报告运行时对其进行过滤是相同的(Access可能实际上只是在幕后执行此操作,我也不是很清楚。

不管怎样,让我们开始吧。这里有一段代码片段,您可以将其用作起点并进行调整。

创建一个显示'Run Report‘的按钮,我们将其命名为cmdRunReport

在该按钮的On Click事件中,您将放入一些代码。我现在只是在写这篇文章,所以我可能有一些语法错误(在这台电脑上没有访问权限)。

代码语言:javascript
复制
   dim multiple as boolean
   dim filtering as string
   filtering = ""

   if me.yearDropdown is not null then
   filtering = filtering  + "[myYearField] = " & me.yearDropdown 
   multiple = true
   end if

   if me.cityDroPDown is not null then
    if multiple then
        filtering = filtering  + "AND [myCityField] = '" & me.cityDropdown & "'"
    else
        filtering = filtering  + "  [myCityField] = '" & me.cityDropdown & "'"
        set multiple = true
    end if
   end if

    if me.CompanyDropDown is not null then
      if multiple then
        filtering = filtering  + "AND [myCompanyField] = '" & me.CompanyDropdown & "'"
      else
        filtering = filtering  + "  [myCompanyField] = '" & me.CompanyDropdown & "'"
        set multiple  = true
      end if
   end if



    DoCmd.OpenReport "yourReport", acViewPreview, , filtering

这是你所能做的事情的基础。我可能有几个if语法错误,并错误地连接了过滤字符串(未测试),但这就是您可以开始的地方。

在英语中,它只查看您用来过滤的表单的下拉列表。它检查它们是否不为空,然后将它们的值连接到“过滤”字符串中。此字符串用作OpenReport方法中的参数。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15910644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档