Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

窗体上列表框的多选查询 内容如何反映在查询表上

张华  发表于:2017-11-23 11:00:51  
复制

点击下载此附件

问题点是当窗体查询到多选内容后,查询表是无法显示,是否与查询表的设定公式相关?请各位大神指点,谢谢!

 

Top
MDZZ 发表于:2017-11-23 11:05:16

你到底是用参数查询还是用代码去查询  你里面2种都写了

参数查询不支持 

代码的话  改下还是可以



MDZZ 发表于:2017-11-23 13:56:57
组合框多选查询[Access软件网] http://www.accessoft.com/article-show.asp?id=8246

仙来 发表于:2017-11-24 12:16:43
根据楼上提供示例,修改代码。供参考。下载示例

张华 发表于:2017-11-24 13:44:14
老师们是这样的,因为参数表上参数是用来导出被查询的内容,如不用参数的话,哪如何导出EXCEL列表框多选查询后的内容,例如代号也行,只要能解决窗体上的列表框多选查询内容与导出EXCEL内容一致就可以,谢谢!点击下载此附件

仙来 发表于:2017-11-24 15:27:18
你的附件没打开,你的意思是 “导出被查询的内容”,利用的我附件做了一个示例。下载示例

张华 发表于:2017-11-24 15:47:09

老师太牛了,谢谢老师!导出一个表需要这么多码组成。请问老师如何提高编码书写

老师又产生一个问题,如何解决导出大于55000条数据?



张华 发表于:2017-11-24 16:43:27

仙老师!导出大于55000条件数据,你提供码已解决 ,刚才没注意到不好意思,

非常感谢仙老师!



张华 发表于:2017-11-27 10:21:38

老师!增加了日期查询范围后,点击查询按键没反映,请老师指点,谢谢

代码该如何修正?点击下载此附件



仙来 发表于:2017-11-27 12:20:54

 On Error GoTo Err_cmd查询_Click

    Dim strWhere As String  '定义条件字符串

    strWhere = ""    '设定初始值-空字符串

    '判断【车种】条件是否有输入的值
    If Not IsNull(Me.车种) Then
        '有输入
        strWhere = strWhere & "([车种] like '*" & Me.车种 & "*') AND "
    End If

'    '判断【车型】条件是否有输入的值
    If Not IsNull(Me.车型) Then
        '有输入
'        strWhere = strWhere & "([车型] like '" & Me.车型 & "') AND "
      On Error Resume Next
    Dim A As Variant
    Dim i As Integer
    Dim str As String
    A = Split(Me.车型, "、")

    For i = 0 To UBound(A)
        str = str & "车型='" & A(i) & "' Or "
    Next

    str = Left(str, Len(str) - 4)
    '传递查询条件方法各有不同,本例是将条件传递到子窗体的Filter属性,并激活筛选。
'    Me.查询子窗体.Form.Filter = str
'    Me.查询子窗体.Form.FilterOn = True
      strWhere = strWhere & "( " & str & ") AND "
    End If
   
   
      '判断【销售日期】条件是否有输入的值,由于有【销售日期开始】【销售日期截止】两个文本框
'    '所以要分开来考虑
    If Not IsNull(Me.销售日期开始) Then
        '【销售日期开始】有输入
        strWhere = strWhere & "([销售日期] >= #" & Format(Me.销售日期开始, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.销售日期截止) Then
        '【销售日期截止】有输入
        strWhere = strWhere & "([销售日期] <= #" & Format(Me.销售日期截止, "yyyy-mm-dd") & "#) AND "
    End If

'    '判断【省份】条件是否有输入的值
'    If Not IsNull(Me.省份) Then
'        '有输入
'        strWhere = strWhere & "([省份] like '*" & Me.省份 & "*') AND "
'    End If
'
'    '判断【年款】条件是否有输入的值
'    If Not IsNull(Me.年款) Then
'        '有输入
'        strWhere = strWhere & "([年款] like '" & Me.年款 & "') AND "
'    End If
'
'    '判断【生产线】条件是否有输入的值,
'   If Not IsNull(Me.生产线) Then
'        '有输入
'        strWhere = strWhere & "([生产线] like '" & Me.生产线 & "') AND "
'    End If
'
'   '判断【车架号】条件是否有输入的值,
'   If Not IsNull(Me.车架号) Then
'        '有输入
'        strWhere = strWhere & "([车架号] like '" & Me.车架号 & "') AND "
'    End If
'

    '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
    '要用LEFT函数截掉这5个字符。
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If
'    MsgBox strWhere
    '先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
    Debug.Print strWhere

    '让子窗体应用窗体查询
    Me.[查询子窗体].Form.Filter = strWhere
    Me.[查询子窗体].Form.FilterOn = True

'Call 车型_Click

Exit_cmd查询_Click:
    Exit Sub

Err_cmd查询_Click:
    MsgBox Err.Description
    Resume Exit_cmd查询_Click



张华 发表于:2017-11-28 09:42:50
老师!就是用上述的码来搞,当点击查询按键后没反映,是不是代码逻辑不对,请老师明确指导,谢谢!

张华 发表于:2017-11-28 16:48:52

老师!我想将车种也像车型哪样可多选,但代码说出现重复,请老师指点

其实两种列表框能串联一齐构成查询吗?

点击下载此附件



总记录:11篇  页次:1/1 9 1 :