2015-04-23 59 views
2

随处看看有关这方面的帮助;我无法相信这是无法解决的:MS Access 2007;从用户提炼的子表单中提取数据

场景:我有一个未绑定的子窗体在数据表中显示数据。用户从组合框中选择要显示的报表,然后生成查询并随即显示在子表单中。用户然后可以将报告(从querydef)导出到xlsx格式文件以分发给同事。一切运作良好。

但是,用户还会细化数据表中的数据,使用列控件进行选择和排序。问题是:我如何导出精炼的数据?

我会很感激任何帮助。谢谢

回答

0

数据表的所有选择和排序都存储在子窗体的me.filter属性中。

所以你把过滤器交给报告。您可以像使用SQL查询的常规WHERE子句一样使用过滤器。

[在宿主形式窗体容器控件的名称] .Form.Filter = where子句

编辑:这里是您在主要形式在过程中使用preferrably一些代码开始创建报告:

dim strWHERE As String 

strWHERE = Me.subform.Form.Filter 
docmd.OpenReport "YourReport", , , strWHERE 

请给我们反馈,如果它的工作。

+0

感谢您的迅速和认真的回应。不幸。我似乎没有理解。你说用户的细化被保存在子窗体的过滤器中。因此,我可以通过引用该过滤器来访问它:如“whereClause = me!MySubForm.Form.Filter”?我得到这个2455错误:'你输入了一个表达式,有一个无效的引用属性过滤器' –

+0

是否有可能当你试图你有*没有过滤器*因此不能有一个参考?在这种情况下,您需要先检查是否有过滤器。 – EliteRaceElephant

+0

谢谢@memerp,它现在正在工作(我不得不重新加载表单以使代码生效)。它不需要任何订购通知,但我可以忍受。请接受我的感谢(并且不知道他们是世界上最大的电信公司之一的感激之情) –