MS Access子报告分组和排序问题

时间:2012-02-04 00:40:33

标签: ms-access ms-access-2007

用这个把头发拉了出来。搜索到处都是无法工作的。这是我的情景:

我有一个包含来自链接表的多个子报表的报表。我想根据名为SORT_BY的变量的值对子报表进行分组以对给定字段进行排序,并为每个值强制分页,即在ItemDescription或ItemLocation上对子报表进行分组。 SORT_BY变量是从用户首选项对话框设置的。 (是的,我使用它就像一个常数,但用户可以改变它)

现在,我希望用户能够在打印之前预览报告。我在ReportView模式下启动了报表。这允许我在报告的标题中放置“打印”按钮和“关闭”按钮(不打印)。我这样设置是因为用户被锁定在正常的“功能区”和其他控件之外,所以我必须提供按钮。这些按钮不会显示在PrintPreview模式中。

显然,我需要通过VBA实现这一目标。我似乎无法使GroupLevel设置工作。我尝试过CreateGroupLevel函数无济于事。尝试使用现有组并且没有现有组。我已经尝试放弃组的想法,只是尝试使用OrderBy属性对子报表进行排序,但没有任何作用。我疯了。

有没有人有任何建议......除了放弃? : - )

更新: 在打开主报表之前,我一直在尝试CreateGrouplevel函数。即在设计视图中打开每个子报表,添加组,关闭子表单,然后打开主报表。但是,当我尝试实现CreateGroupLevel函数时,我收到错误:

运行时错误'2154': 当“组”,“排序”和“总计”窗格打开时,您无法调用此功能。

我不明白这一点。这是我的代码:

DoCmd.OpenReport strReport, acViewDesign
intGroupLevel = CreateGroupLevel(strReport, "FluorescentDescription", True, False)
DoCmd.Close acReport, strReport

思想?

哎呀!

好的,所以我想出了'2154'的错误。实际上,如果您在编辑报告时打开了“组”,“排序”,“总计”窗格,那么每次您在该报告上输入“设计视图”时它将自动打开,直到您实际关闭它为止。奇怪。还在扯掉这个。

1 个答案:

答案 0 :(得分:0)

如果我错了,我肯定会有人纠正我,但我不认为把报告上的按钮放在一边。为什么不构建自己的自定义工具栏来显示包含打印和关闭