Office中国论坛/Access中国论坛

标题: 如何打印子窗体数据? [打印本页]

作者: FookYou    时间: 2010-1-4 12:37
标题: 如何打印子窗体数据?
[attach]41118[/attach]
我用图中的放大镜来打开其相应的查询表再执行Access查询表的打印等操作。这样相当于又运行了一次查询。
现在我想做几个控件直接对窗体的查询结果进行打印、打印预览、选择记录打印、转化为Excel格式等操作。
不知用什么办法实现,怎么写?哪位大师给指点一下,谢谢!
作者: roych    时间: 2010-1-4 13:20
做报表(Report)会不会?把查询做成一个报表就可以直接预览打印了~~
另外,用宏(Macro)可以直接导出Excel表格(output)
作者: FookYou    时间: 2010-1-4 15:19
2# roych
关键是我的查询是动态的!
作者: 红尘如烟    时间: 2010-1-4 15:26
把报表和数据源设置成和子窗体数据源一样就行了
格式固定数据不固定的报表适合用Access
数据不固定但格式固定的报表适合用Excel
作者: FookYou    时间: 2010-1-5 09:55
4# 红尘如烟
谢谢!由于子窗体源对象是变动的。其字段名称和字段个数不定。要去改每个控件的记录源。而且做个报表来实现其打印功能不就等于还要运行一次报表。我的表比较大,每个表都有几十万条记录,从这么大的几个表里找记录本来运行起来比较慢。
既然窗体上能显示出记录,应该有什么方法可以把窗体的记录读出来再进行操作,不知到能实现不,请哪位大侠指点下!谢谢!
作者: 红尘如烟    时间: 2010-1-5 13:40
如果你只是在子窗体中显示查询结果的话,不一定要在子窗体的源对象中使用窗体,可以将子窗体的源对象设为查询(类似于“查询.查询1”),这样打印时直接打印查询,查询也不用运行多次
作者: FookYou    时间: 2010-1-5 13:49
如果你只是在子窗体中显示查询结果的话,不一定要在子窗体的源对象中使用窗体,可以将子窗体的源对象设为查询(类似于“查询.查询1”),这样打印时直接打印查询,查询也不用运行多次
红尘如烟 发表于 2010-1-5 13:40

我就是把子窗体的源对象设置成“查询.查询1",请问打印查询vba该怎么写?
作者: 红尘如烟    时间: 2010-1-5 13:56
查询方法可以在窗体中点击查询按钮后,用代码动态修改查询对象的SQL属性:

  1. Private Sub cmdQuery_Click()
  2.     Dim strSQL As String
  3.    
  4.     strSQL = "SELECT * FROM 表1 WHERE 字段1>=" & Me.文本框1
  5.     CurrentDb.QueryDefs("查询1").SQL = strSQL
  6.     Me.查询子窗体.SourceObject = "查询.查询1"
  7.     DoCmd.OpenQuery "查询1", acViewPreview
  8.    
  9. End Sub

复制代码





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