ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2056|回复: 11

求教:如何理解此查询语句??

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-5-24 09:36 | 显示全部楼层 |阅读模式
这是其中一条查询语句:
       strWhere = strWhere & "([客户编号] like '*" & Me.客户编号 & "*') AND "


里面的的语句读不明白 ,特别是后面的 AND, 好像是没什么关系,可有可无的,但执行时没有就提示错了,不明白!!望不吝赐教!

2222.png

TA的精华主题

TA的得分主题

发表于 2017-5-24 10:07 | 显示全部楼层
再继续往下看,看strwhere后面是否还有别的语句连接的

TA的精华主题

TA的得分主题

发表于 2017-5-24 11:41 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-25 07:39 | 显示全部楼层
little-key 发表于 2017-5-24 10:07
再继续往下看,看strwhere后面是否还有别的语句连接的

它后面接的是 end if 呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-25 07:45 | 显示全部楼层
little-key 发表于 2017-5-24 10:07
再继续往下看,看strwhere后面是否还有别的语句连接的

只是后面接的是end if ,盼解!!1

TA的精华主题

TA的得分主题

发表于 2017-5-25 09:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你把完整的代码贴出来

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-25 10:28 | 显示全部楼层
little-key 发表于 2017-5-25 09:22
你把完整的代码贴出来

Private Sub cmd查询_Click()
    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 "
    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 & "([办理开始日期] >= #" & Format(Me.办理开始日期, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.办理截止日期) Then
        '【进书日期截止】有输入
        strWhere = strWhere & "([办理截止日期] <= #" & Format(Me.办理截止日期, "yyyy-mm-dd") & "#) AND "
    End If

    '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
    '要用LEFT函数截掉这5个字符。
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If

    '先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
    Debug.Print strWhere

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



Exit_cmd查询_Click:
    Exit Sub

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

End Sub
Private Sub cmd清除_Click()

    'Screen.PreviousControl.SetFocus
    'DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
   
On Error GoTo Err_cmd清除_Click
'这里将使用FOR EACH CONTROL的方法来清除控件的值
'这在控件比较多的时候非常有用。
'================================

    Dim ctl As Control
   
    For Each ctl In Me.Controls
   
        '根据ctl的控件类型来选择
        Select Case ctl.ControlType
            Case acTextBox '是文本框,要清空(注意,子窗体下面还有两个锁定的文本框不能赋值)
                If ctl.Locked = False Then ctl.Value = Null
               
            Case acComboBox '是组合框,也要清空
                ctl.Value = Null
            '其它类型的控件不处理
        
        End Select
    Next
   
    '取消子窗体的筛选
    Me.[查询1 子窗体].Form.Filter = ""
    Me.[查询1 子窗体].Form.FilterOn = False
   

Exit_cmd清除_Click:
    Exit Sub

Err_cmd清除_Click:
    MsgBox Err.Description
    Resume Exit_cmd清除_Click
   
End Sub

TA的精华主题

TA的得分主题

发表于 2017-5-25 11:20 | 显示全部楼层
If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-25 11:22 | 显示全部楼层
little-key 发表于 2017-5-25 11:20
If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5) ...

是呀,干吗用 AND ?

TA的精华主题

TA的得分主题

发表于 2017-5-25 12:01 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-24 03:10 , Processed in 0.046889 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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