Office中国论坛/Access中国论坛

标题: 请教!如何将窗体中“按窗体筛选”的结果传递给报表啊? [打印本页]

作者: sxgaobo    时间: 2006-1-21 02:20
标题: 请教!如何将窗体中“按窗体筛选”的结果传递给报表啊?
[attach]15496[/attach]
使用系统带的“按窗体筛选”功能可以很方便的多条件筛选数据,可如何能将筛选结果传递给报表啊!?
作者: sxgaobo    时间: 2006-1-21 17:23
有知道的朋友吗?是我说的不明白吗?
作者: 一点通    时间: 2006-1-21 17:42
自己建一个筛选查询吧
作者: sxgaobo    时间: 2006-1-23 23:31
自己建的筛选查询的筛选条件是固定的,而使用系统带的“按窗体筛选”功能可以很方便的多条件筛选数据。现在就想能不能将筛选结果传递给报表,能的话如何做啊!?
作者: sgrshh29    时间: 2006-1-24 01:22
以下是引用sxgaobo在2006-1-23 15:31:00的发言:
自己建的筛选查询的筛选条件是固定的,而使用系统带的“按窗体筛选”功能可以很方便的多条件筛选数据。现在就想能不能将筛选结果传递给报表,能的话如何做啊!?

做个查询,再做个报表。报表就用这个查询做数据源。筛选后用代码改变查询使其与窗体的数据源一致,很简单的代码就解决了。
作者: sgrshh29    时间: 2006-1-24 18:55
最简单的方法:

'公有变量
Public strsql As String  
‘窗体模块
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
Dim a, b As String
a = Me.RecordSource
b = Me.Filter
strsql = "select * from " & a & " where " & b
DoCmd.OpenReport "RepotName", acViewPreview
End sub
’报表模块
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = strsql
DoCmd.Maximize
End Sub
作者: sgrshh29    时间: 2006-1-24 19:10
再简化:(窗体和报表的数据源为同一个数据表)

‘窗体模块
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
strFilter = Me.Filter
DoCmd.OpenReport "RepotName", acViewPreview, , strFilter
End Sub

[此贴子已经被作者于2006-1-24 11:24:53编辑过]


作者: wuaza    时间: 2006-1-24 19:48
sgrshh29的办法好,学习ing。
作者: zcy0718    时间: 2006-1-25 03:14
sgrshh29的办法好




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