设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 如何实现“将窗体中通过系统自带筛选得到的结果记录进行加工"

[复制链接]
跳转到指定楼层
1#
发表于 2018-6-19 10:50:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
access表格里自带了筛选功能,这省去了自己再写查找控件了。
但是筛选出结果后如何加工,比如打印,导出,勾选等功能。
在此请教。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2018-6-19 10:53:47 | 只看该作者
可将当前的recordsetclone 传递给报表 或将 当前的Filter 当成条件参数传递给报表(docmd.openreport ) 也是可行的
3#
 楼主| 发表于 2018-6-20 22:12:20 | 只看该作者
受站长启发,在网上找了很久,都只找到传递给报表,而没有直接作用在窗体的。
自己经过了反复尝试,解决了这个问题。
反馈给大家:
(在主窗体中设置一个全选的选择框,在子窗体筛选后,对当前界面上的数据进行全选)
Private Sub CHK_全选是否_Click()
    Dim strwhere As String
    strwhere = Me.子窗体.Form.Filter
    strwhere = Replace(strwhere, "[子窗体名].", "") '获得的filter会保留子窗体的名字,如果不去掉,在主窗体运行时sql出错
    strwhere = Replace(strwhere, """", "'") '还要去掉双引号
    If strwhere <> "" Then
        strwhere = "where" & strwhere
    End If
    Me.子窗体.Form.RecordSource = "select * from 表  " & strwhere
    If Me.CHK_全选是否 = True Then
        CurrentDb.Execute "update 表 set 批量选择=true " & strwhere
        Me.子窗体.Requery
    Else
        CurrentDb.Execute "update 表 set 批量选择=false " & strwhere
        Me.子窗体.Requery
        Me.子窗体.Form.Filter = Me.子窗体.Form.Filter
    End If
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-10 17:36 , Processed in 0.085294 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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