Office中国论坛/Access中国论坛
标题:
如何把子窗体的排序 传递给报表
[打印本页]
作者:
宏魔法师
时间:
2011-6-9 11:09
标题:
如何把子窗体的排序 传递给报表
本帖最后由 宏魔法师 于 2011-6-9 13:36 编辑
Dim stDocName, strWhere As String
stDocName = "rpt打印_3"
strWhere = Me.frm05.Form.Filter
DoCmd.OpenReport stDocName, acPreview, , strWhere
上面这段代码是把子窗体的筛选传递给报表,但现在不光有筛选,还有排序。
而且排序是根据选择变化的,不固定,所以没法做在查询里,
请高手帮忙看看,如果把子窗体的排序规则,传递给报表,让报表的排序与子窗体的排序一致,无论是代码和其他设置,都可以,先谢谢啦。
作者:
宏魔法师
时间:
2011-6-12 13:42
顶!
作者:
roych
时间:
2011-6-12 18:45
这个……可能性不大。报表是在分组的基础上,而且各字段已经分配好的前提下排序的。从理论上来讲,除非能捕捉到窗体排序的字段,在打开报表之前重新分组……我建议LZ不要钻牛角尖。
作者:
宏魔法师
时间:
2011-6-12 20:56
对,就是在打开报表前,不知道,报表的排序代码怎么写,有例子吗!
作者:
aslxt
时间:
2011-6-13 12:19
如果排序是动态的,可以用查询作为报表的数据源,在窗体中修改"排序"后,从窗体打开报表前,修改查询的“排序”。这样报表就可以按照指定的排序了
作者:
roych
时间:
2011-6-13 16:45
如果使用系统自带的排序功能,捕捉这个动作并非易事。因此如果非要这样做,必须得先禁止或者隐藏排序菜单,而是改为组合框或者文本框等控件来选择字段,再加上排序的按钮,然后再进行报表的排序……我觉得这是相当浩瀚的一个工程。
作者:
aslxt
时间:
2011-6-13 17:20
如附件:
[attach]45848[/attach]
可以传递的啊?
Command9:主窗体的按钮
就诊信息子窗体:子窗体(数据表)
Reports!就诊信息:报表
Private Sub Command9_Click()
MsgBox Me.就诊信息子窗体.Form.OrderBy
DoCmd.OpenReport "就诊信息", acViewPreview
Reports!就诊信息.Report.OrderBy = Me.就诊信息子窗体.Form.OrderBy
Reports!就诊信息.Report.OrderByOn = True
End Sub
作者:
aslxt
时间:
2011-6-13 17:22
当然,前提是报表和子窗体的字段之间都有有对应的关系,否则,就要复杂一点。
作者:
宏魔法师
时间:
2011-6-14 22:46
非常感谢,解决了一个大难题
作者:
宏魔法师
时间:
2011-6-15 22:49
不行啊,传递过去了,但报表还是原来的排序。
作者:
andymark
时间:
2011-10-12 23:53
在设计报表时数据源跟窗体的数据源一至,当窗体的筛选或排序改变了,只要重新把窗体的数据源传递给报表,这样就可以实现报表显示的结果跟窗体相一至
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3