Access交流中心

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

2个以上查询的时候 代码该怎么写

qiecaiban  发表于:2016-01-25 15:09:34  
复制

在窗体里 设定子窗体名字ABC  ,有两个文本框 名字1,名前  名字2性别


如果想查询名字里面某某某 ,加上性别 假如是男


写的代码是

Private Sub com12_Click()
 Dim strWhere As String
  If Not IsNull(Me.名前) Then
    strWhere = "[名前] like '*" & Me.名前 & "*'"
  End If


  If Not IsNull(Me.性別) Then
    strWhere = "[性別] like '*" & Me.性別 & "*'"
  End If
  
  Me.ABC.Form.Filter = strWhere
  Me.ABC.Form.FilterOn = True
   
End Sub


如果在两个文本框中输入查询条件,结果只能出来识别后面的查询,前面那个查询好像不起作用了。

请问在两个以上查询的情况下,代码该怎么写?


谢谢










 

Top
朱先生 发表于:2016-01-25 15:57:58

做个简单查询方便

筛选比较难



qiecaiban 发表于:2016-01-25 16:00:42

但是我还是想知道答案




朱先生 发表于:2016-01-25 18:06:56
落尘_小新 发表于:2016-01-25 23:54:16

逻辑问题

当 名前 不为空时 strWhere 变量赋值成功 

当 性别 不为空时 strWhere 变量又重新赋值

所以当 名前 和 性别 都不为空时,语句顺序执行到第二个IF时就重新赋值了,自然第一个IF条件不起作用了。

修改如下(供参考):

Private Sub com12_Click()
    Dim strWhere As String
    If Not IsNull(Me.名前) Then
        strWhere = "[名前] like '*" & Me.名前 & "*'"
    End If

    If Not IsNull(Me.性别) And Not IsNull(Me.名前) Then
        strWhere = strWhere & " AND [性别] like '*" & Me.性别 & "*'"
    End If

    Me.ABC.Form.Filter = strWhere
    Me.ABC.Form.FilterOn = True
End Sub
方法千千万,就看你怎么干,祝你成功。



qiecaiban 发表于:2016-01-26 06:54:02

老师 谢谢你


但是 还有个问题

如果只输入第二个条件  第一个条件为空的时候

上面的代码好像无效了

怎么办?

谢谢



qiecaiban 发表于:2016-01-26 06:54:04

老师 谢谢你


但是 还有个问题

如果只输入第二个条件  第一个条件为空的时候

上面的代码好像无效了

怎么办?

谢谢



落尘_小新 发表于:2016-01-26 21:07:59
Private Sub com12_Click()
    Dim strWhere As String
    strWhere = Null
    If Not IsNull(Me.名前) Then
        strWhere = strWhere & " AND " & "[名前] like '*" & Me.名前 & "*'"
    End If

    If Not IsNull(Me.性别) Then
        strWhere = strWhere & " AND " & "[性别] like '*" & Me.性别 & "*'"
    End If
    strWhere = Mid(strWhere, 6)
    Me.ABC.Form.Filter = strWhere
    Me.ABC.Form.FilterOn = True
End Sub


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