设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2624|回复: 10
打印 上一主题 下一主题

[报表] 如何把子窗体的排序 传递给报表

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-9 11:09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 宏魔法师 于 2011-6-9 13:36 编辑

Dim stDocName, strWhere As String
   
    stDocName = "rpt打印_3"
    strWhere = Me.frm05.Form.Filter
     DoCmd.OpenReport stDocName, acPreview, , strWhere

上面这段代码是把子窗体的筛选传递给报表,但现在不光有筛选,还有排序。
而且排序是根据选择变化的,不固定,所以没法做在查询里,
请高手帮忙看看,如果把子窗体的排序规则,传递给报表,让报表的排序与子窗体的排序一致,无论是代码和其他设置,都可以,先谢谢啦。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2011-6-12 13:42:14 | 只看该作者
顶!
3#
发表于 2011-6-12 18:45:05 | 只看该作者
这个……可能性不大。报表是在分组的基础上,而且各字段已经分配好的前提下排序的。从理论上来讲,除非能捕捉到窗体排序的字段,在打开报表之前重新分组……我建议LZ不要钻牛角尖。
4#
 楼主| 发表于 2011-6-12 20:56:06 | 只看该作者
对,就是在打开报表前,不知道,报表的排序代码怎么写,有例子吗!
5#
发表于 2011-6-13 12:19:10 | 只看该作者
如果排序是动态的,可以用查询作为报表的数据源,在窗体中修改"排序"后,从窗体打开报表前,修改查询的“排序”。这样报表就可以按照指定的排序了
6#
发表于 2011-6-13 16:45:54 | 只看该作者
如果使用系统自带的排序功能,捕捉这个动作并非易事。因此如果非要这样做,必须得先禁止或者隐藏排序菜单,而是改为组合框或者文本框等控件来选择字段,再加上排序的按钮,然后再进行报表的排序……我觉得这是相当浩瀚的一个工程。
7#
发表于 2011-6-13 17:20:06 | 只看该作者
如附件:

可以传递的啊?
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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2011-6-13 17:22:47 | 只看该作者
当然,前提是报表和子窗体的字段之间都有有对应的关系,否则,就要复杂一点。
9#
 楼主| 发表于 2011-6-14 22:46:01 | 只看该作者
非常感谢,解决了一个大难题
10#
 楼主| 发表于 2011-6-15 22:49:12 | 只看该作者
不行啊,传递过去了,但报表还是原来的排序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-30 10:24 , Processed in 0.083119 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表