设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4268|回复: 13
打印 上一主题 下一主题

[Access本身] 列表框和文本框混合一起,如何实现查询?

[复制链接]
跳转到指定楼层
1#
发表于 2019-5-11 20:44:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 snryga 于 2019-5-11 20:45 编辑

如何将列表框和文本框(或组合框)混合在一起查询子窗体,请大侠帮忙改写一下查询语句?谢谢!!!

附件中前3个是列表框,最后一个是文本框。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
14#
发表于 2019-5-18 17:51:11 | 只看该作者
snryga 发表于 2019-5-15 21:24
刘小军的查询导出代码如下:
Private Sub 导出_Click()
On Error GoTo Err_导出_Click

你要把修改后的筛选条件加到预设的查询里才能完成的。
13#
 楼主| 发表于 2019-5-15 21:24:18 | 只看该作者
刘小军的查询导出代码如下:
Private Sub 导出_Click()
On Error GoTo Err_导出_Click

    Dim qdf As DAO.QueryDef 'qdf
    Dim strWhere, strSQL As String
   
    strWhere = Me.子窗体.Form.Filter
    If strWhere = "" Then
        '没有条件
        strSQL = "SELECT * FROM [查询1]"
    Else
        '有条件
        strSQL = "SELECT * FROM [查询1] WHERE " & strWhere
    End If
   
    Set qdf = CurrentDb.QueryDefs("查询结果")
    qdf.Sql = strSQL
    qdf.Close
   
    Set qdf = Nothing
   
    DoCmd.OutputTo acOutputQuery, "查询结果", acFormatXLS, , True

   
Exit_导出_Click:
    Exit Sub

Err_导出_Click:
    MsgBox Err.Description
    Resume Exit_导出_Click
End Sub

以上运用到有列表框的窗体查询中无法实现筛选后的数据导出,导出是全部数据。

但在没有列表框的窗体查询中,则能正确导出筛选后的数据。

这是怎么回事呢?
12#
发表于 2019-5-15 08:55:19 | 只看该作者
那个不是查询,是筛选,OK?导出的话,当然得导出筛选后的数据,你在论坛搜索下“刘小军常用窗体查询”看看,印象中应该是第二个文件,看看别人是怎么处理的。
11#
 楼主| 发表于 2019-5-14 17:19:18 | 只看该作者
又出新问题,不在查询中设置参数查询后,导出的数据不是查询的结果,是整表内容。

这个需要怎么整呢?
10#
 楼主| 发表于 2019-5-14 15:10:59 | 只看该作者
谢谢!!!
回复

使用道具 举报

9#
发表于 2019-5-14 14:55:38 | 只看该作者
snryga 发表于 2019-5-13 23:33
再问一个问题,如果是在查询中参数查询条件。在窗体代码中就只需一句进行更新语句,查询中条件如下:
Like ...

建议统一吧。
要么用查询,要么有筛选(这个例子用的是筛选),而不要混着用。虽然从程序的角度来看,这并不存在做不到的情况,但从业务逻辑理解上来看,很容易引起混乱。
8#
 楼主| 发表于 2019-5-13 23:33:04 | 只看该作者
本帖最后由 snryga 于 2019-5-13 23:40 编辑

再问一个问题,如果是在查询中参数查询条件。在窗体代码中就只需一句进行更新语句,查询中条件如下:
Like IIf(IsNull([Forms]![统计]![型号]),'*','*' & [Forms]![统计]![型号] & '*')

如果是这样,那么在窗体中又要使用“列表框”,该如何写代码呢?
7#
 楼主| 发表于 2019-5-13 21:37:29 | 只看该作者
这个还真是抄的
6#
发表于 2019-5-13 15:14:25 | 只看该作者
snryga 发表于 2019-5-13 09:07
If Me.使用单位.ItemsSelected.Count > 0 Then
        Set ctl = Me.使用单位
        strWhere = ""

你放if里面是几个意思?不是应该另起一行直接判断文本框的吗?看来你并没有理解这段代码啊(不会是抄别人的吧?)。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-1 05:34 , Processed in 0.099703 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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