设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2714|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
11#
发表于 2011-10-12 23:53:14 | 只看该作者
在设计报表时数据源跟窗体的数据源一至,当窗体的筛选或排序改变了,只要重新把窗体的数据源传递给报表,这样就可以实现报表显示的结果跟窗体相一至
10#
 楼主| 发表于 2011-6-15 22:49:12 | 只看该作者
不行啊,传递过去了,但报表还是原来的排序。
9#
 楼主| 发表于 2011-6-14 22:46:01 | 只看该作者
非常感谢,解决了一个大难题
8#
发表于 2011-6-13 17:22:47 | 只看该作者
当然,前提是报表和子窗体的字段之间都有有对应的关系,否则,就要复杂一点。
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
6#
发表于 2011-6-13 16:45:54 | 只看该作者
如果使用系统自带的排序功能,捕捉这个动作并非易事。因此如果非要这样做,必须得先禁止或者隐藏排序菜单,而是改为组合框或者文本框等控件来选择字段,再加上排序的按钮,然后再进行报表的排序……我觉得这是相当浩瀚的一个工程。
5#
发表于 2011-6-13 12:19:10 | 只看该作者
如果排序是动态的,可以用查询作为报表的数据源,在窗体中修改"排序"后,从窗体打开报表前,修改查询的“排序”。这样报表就可以按照指定的排序了
4#
 楼主| 发表于 2011-6-12 20:56:06 | 只看该作者
对,就是在打开报表前,不知道,报表的排序代码怎么写,有例子吗!
3#
发表于 2011-6-12 18:45:05 | 只看该作者
这个……可能性不大。报表是在分组的基础上,而且各字段已经分配好的前提下排序的。从理论上来讲,除非能捕捉到窗体排序的字段,在打开报表之前重新分组……我建议LZ不要钻牛角尖。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-21 08:26 , Processed in 0.099804 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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