Access交流中心

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

照猫画虎,查询语句使用后,空值的不能显示,求指点,谢谢

张先生  发表于:2020-06-29 22:09:42  
复制

Private Sub C查询_Click()
    str1 = "项目序号 like '*" & Me.Q项目序号 & "*' and  项目类型 like '*" & Me.Q项目类型 & "*' and 单位 like '*" & Me.Q单位 & "*'and 项目名称 like '*" & Me.Q项目名称 & "*'and 项目状态 like '*" & Me.Q项目状态 & "*'and 项目代码 like '*" & Me.Q项目代码 & "*'"
    Me.项目基础情况.Form.Filter = str1
    Me.项目基础情况.Form.FilterOn = True

End Sub


上述语句是借鉴的一个示例中的语句,但运用到自己的ACCESS里面,发现当源数据表中 “项目序号”或者“项目类型”或者“单位”或“项目名称”或者“项目状态”或者“项目代码”中某一字段有空值时,就会忽略不显示了。

举例:如果 我选择了一个“单位”字段的查询条件,发现这个“单位”字段对应的“项目代码”是空的记录,就无法查询出来。

谢谢老师了

 

Top
张先生 发表于:2020-06-30 10:40:29
这么多路过的老师,为啥就不能给予点帮助呢?

麥田 发表于:2020-06-30 15:04:21
第一个的   *号要放在单引号左面

西出阳关无故人 发表于:2020-06-30 19:40:36

str1 = "项目序号 like '*" & IIf(Nz(Me.Q项目序号, "") = "", "", Me.Q项目序号 & "*") & "' and  项目类型 ...

...后面的自己照猫画虎改过来.注意红色标注的地方.


意思是,如果Me.Q项目序号的值为空或零长度字符串,str1=  项目序号 like '*' and 项目类型 ...

否则  str1=  项目序号 like '*项目序号控件的值*' and 项目类型 ...



张先生 发表于:2020-07-01 12:45:13
这个论坛 没法回复吗   感谢2、3楼老师的帮助,我按照3楼老师的方法试了,但还是无法显示出空值来

西出阳关无故人 发表于:2020-07-01 18:02:47

前面的回复是指条件值为空的情况,下面是表中字段值为空的情况

单个条件:

str=IIf(Nz(Me.Q项目序号, "") = "", "项目序号 is null ", "项目序号 like '*" & Me.Q项目序号 & "*")

多个条件:

str=IIf(Nz(Me.Q项目序号, "") = "", "项目序号 is null ", "项目序号 like '*" & Me.Q项目序号 & "*") & " and  " & iif(...

str=IIf(Nz(Me.Q项目序号, "") = "", "nz(项目序号,'')='' ", "项目序号 like '*" & Me.Q项目序号 & "*") & " and  " & iif(...



张先生 发表于:2020-07-03 09:56:51

如图:

输入“文件号” 后(红圈位置),点击“查询”,只能查询到借阅人不为空的 上面两条记录,而下面两条借阅人为空的,显示不出来,请老师给予支招。后附附件。谢谢

点击下载此附件



西出阳关无故人 发表于:2020-07-03 14:18:53

发实例,并用文字描述查询的逻辑要求.


如果不考虑性能,可参考:

Private Sub Command21_Click()
    Dim whereStr
    If Nz(Text1, "") = "" Then
        whereStr = "nz(字段1) like '*'"
    Else
        whereStr = "字段1 like '*" & Text1 & "*'"
    End If
    If Nz(Text2, "") = "" Then
        whereStr = whereStr & " and " & "nz(字段2) like '*'"
    Else
        whereStr = whereStr & " and " & "字段2 like '*" & Text2 & "*'"
    End If
    If Nz(Text3, "") = "" Then
        whereStr = whereStr & " and " & "nz(字段3) like '*'"
    Else
        whereStr = whereStr & " and " & "字段3 like '*" & Text3 & "*'"
    End If
    If Nz(Text4, "") = "" Then
        whereStr = whereStr & " and " & "nz(字段4) like '*'"
    Else
        whereStr = whereStr & " and " & "字段4 like '*" & Text4 & "*'"
    End If
    
    Debug.Print whereStr
End Sub



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