设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2758|回复: 8
打印 上一主题 下一主题

[报表] 根据窗体内容,更新打印报表的数据源

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-28 22:54:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题是:
有一个窗体 Form:[人员联系表],其中有个人员编号。选择不同的人员编号,打印也将是不同的人员。

一个报表 Report:[人员联系表打印稿],其后台数据源是个查询,联动到窗体上的人员编号。

现在正常情况下,选择了一个人员编号1000,那么打开报表,也显示人员编号1000的内容,一切正常打印。

但现在,我不打开报表,使用VBA后台代码执行打印,选择了新的人员编号8000,打印出的还是人员编号1000的内容。


请问:
    在不打开报表打印界面的情况下,如何自动更新报表的后台数据源,使窗体上选择了新的人员编号,打印也能打印出新选的人员编号,谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2012-5-28 23:15:28 | 只看该作者
    1:查询是怎样联动到窗体上的人员编号的?
    2:使用VBA后台代码执行打印,代码是什么?
3#
 楼主| 发表于 2012-5-29 05:38:02 | 只看该作者
t小宝 发表于 2012-5-28 23:15
1:查询是怎样联动到窗体上的人员编号的?
    2:使用VBA后台代码执行打印,代码是什么?

1:查询联动到窗体是加了这么一段 WHERE tbl人员联系表.[人员编号]=[Forms]![frm人员联系表]![人员编号]
2:VBA后台代码 是DoCmd.OpenReport "rpt人员联系表打印稿", acNormal
4#
 楼主| 发表于 2012-5-29 09:38:25 | 只看该作者
1、查询是加了这么一句 WHERE tbl人员联系表.[人员编号]=[Forms]![frm人员联系表]![人员编号]
2、VBA后台打印代码是 DoCmd.OpenReport "rpt人员联系表打印稿", acNormal

点评

除非之前报表已打开,否则不会出现你说的情况  发表于 2012-5-29 10:50
5#
发表于 2012-5-29 09:48:54 | 只看该作者
传例子吧
6#
 楼主| 发表于 2012-5-29 12:16:55 | 只看该作者
那有什么代码可以,自动打开打印界面界面,刷新报表,再关闭打印界面。
然后窗体人员编号换了,再自动打开打印界面界面,刷新报表,再关闭打印界面的代码。
7#
 楼主| 发表于 2012-5-29 12:47:47 | 只看该作者
如果是报表 已打开,那有什么代码 关闭此报表

点评

DoCmd.Close acReport, "人员联系表打印稿"  发表于 2012-5-30 00:19
8#
发表于 2012-5-29 13:33:09 | 只看该作者
宏魔法师 发表于 2012-5-29 12:16
那有什么代码可以,自动打开打印界面界面,刷新报表,再关闭打印界面。
然后窗体人员编号换了,再自动打开 ...

干什么呢?
9#
发表于 2012-5-29 20:24:49 | 只看该作者
可以更新SQL语句的。
Dim Qry As Query
Set Qry=currentdb.querydefs("报表查询源")
Qry.SQL="select * from 人员联系表 where 人员编号="& Forms!人员联系表!人员编号
把这部分加入到更改事件或者更新后事件里,然后再执行打印报表动作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 00:32 , Processed in 0.104038 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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