Office中国论坛/Access中国论坛

标题: 根据窗体内容,更新打印报表的数据源 [打印本页]

作者: 宏魔法师    时间: 2012-5-28 22:54
标题: 根据窗体内容,更新打印报表的数据源
问题是:
有一个窗体 Form:[人员联系表],其中有个人员编号。选择不同的人员编号,打印也将是不同的人员。

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

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

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


请问:
    在不打开报表打印界面的情况下,如何自动更新报表的后台数据源,使窗体上选择了新的人员编号,打印也能打印出新选的人员编号,谢谢。
作者: t小宝    时间: 2012-5-28 23:15
    1:查询是怎样联动到窗体上的人员编号的?
    2:使用VBA后台代码执行打印,代码是什么?
作者: 宏魔法师    时间: 2012-5-29 05:38
t小宝 发表于 2012-5-28 23:15
1:查询是怎样联动到窗体上的人员编号的?
    2:使用VBA后台代码执行打印,代码是什么?

1:查询联动到窗体是加了这么一段 WHERE tbl人员联系表.[人员编号]=[Forms]![frm人员联系表]![人员编号]
2:VBA后台代码 是DoCmd.OpenReport "rpt人员联系表打印稿", acNormal
作者: 宏魔法师    时间: 2012-5-29 09:38
1、查询是加了这么一句 WHERE tbl人员联系表.[人员编号]=[Forms]![frm人员联系表]![人员编号]
2、VBA后台打印代码是 DoCmd.OpenReport "rpt人员联系表打印稿", acNormal
作者: Henry D. Sy    时间: 2012-5-29 09:48
传例子吧
作者: 宏魔法师    时间: 2012-5-29 12:16
那有什么代码可以,自动打开打印界面界面,刷新报表,再关闭打印界面。
然后窗体人员编号换了,再自动打开打印界面界面,刷新报表,再关闭打印界面的代码。

作者: 宏魔法师    时间: 2012-5-29 12:47
如果是报表 已打开,那有什么代码 关闭此报表
作者: Henry D. Sy    时间: 2012-5-29 13:33
宏魔法师 发表于 2012-5-29 12:16
那有什么代码可以,自动打开打印界面界面,刷新报表,再关闭打印界面。
然后窗体人员编号换了,再自动打开 ...

干什么呢?
作者: roych    时间: 2012-5-29 20:24
可以更新SQL语句的。
Dim Qry As Query
Set Qry=currentdb.querydefs("报表查询源")
Qry.SQL="select * from 人员联系表 where 人员编号="& Forms!人员联系表!人员编号
把这部分加入到更改事件或者更新后事件里,然后再执行打印报表动作。





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3