Access交流中心

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

我希望设备型号和设备序号均精确查询,其余项目都模糊查询,但不

忠  发表于:2009-09-02 17:31:39  
复制

我希望设备型号和设备序号均精确查询,其余项目都模糊查询,但不知精确查询如何写代码,请帮助!谢谢

Private Sub 筛选_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 & "([装机人员] 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
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If
    'Me!综合查询子窗体.SourceObject = "综合查询"
    'Me!综合查询子窗体.Form.RecordSource = "select * from [综合查询] where 签订日期 between #" & Me.起始日期.Value & "# and #" & Me.截止日期.Value & "#"
   
    '让子窗体应用窗体查询
    Me![用户信息查询 子窗体].Form.Filter = strWhere
    Me![用户信息查询 子窗体].Form.FilterOn = True

    Me![用户信息查询 子窗体].Form.OrderBy = "[档案编号]"
    Me![用户信息查询 子窗体].Form.OrderByOn = True

End Sub

 

Top
雪风 发表于:2009-09-02 18:54:05

   If Not IsNull(Me.[用户名称]) Then
        '有输入
        strWhere = strWhere & "([用户名称]  Me.用户名称 ) AND "
    End If

 

把 like '*" &  去除就行了!



忠 发表于:2009-09-02 21:53:47

谢谢!



忠 发表于:2009-09-10 18:08:57
 我用了 strWhere = strWhere & "([用户名称]  Me.用户名称 ) AND "
还是不行,运行到" Me![用户信息查询 子窗体].Form.Filter = strWhere"提示错误.

andymark 发表于:2009-09-11 20:40:37

我希望设备型号和设备序号均精确查询

 

改为下面就可以精确查询

If Not IsNull(Me.[设备型号]) Then
        '有输入
        strWhere = strWhere & "([设备型号] ='" &  Me.设备型号 & "') AND "
    End If
    If Not IsNull(Me.[设备序号]) Then
        '有输入
        strWhere = strWhere & "([设备序号] ='" &  Me.设备序号 & "') AND "
    End If

 

 



忠 发表于:2009-09-13 10:55:09
按照四楼的方法,已经解决了!万分感谢!

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