Access交流中心

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

如果根据复选框来查询数据

王萌萌  发表于:2016-10-13 11:58:52  
复制

 

我想根据上面的开票状态(已开票,未开票,全部)来筛选下面的复选框,不知道这个复选框选中和未选中的表示是YES 还是NO还是-1或者0。

 

代码如下:

Private Sub 查询_Click()
    Dim strWhere As String

 

    If Not IsNull(Me.开始日期) Then strWhere = strWhere & " AND 送货日期>=#" & Format(Me.开始日期, "yyyy-mm-1") & "#"

    If Not IsNull(Me.结束日期) Then strWhere = strWhere & " AND 送货日期<=#" & DateAdd("m", 1, Format(Me.结束日期, "yyyy-mm-1")) - 1 & "#"
    '这里为了判断简便,最前面必定会有一个“ AND ”,这是不需要的,这里去掉它

    If IsNull(Me.开始日期.Value) = False Then
        strWhere = strWhere & " and 送货日期>=#" & Me.开始日期.Value & "#"
    End If
    If IsNull(Me.结束日期.Value) = False Then
        strWhere = strWhere & " and 送货日期<=#" & Me.结束日期.Value & "#"
    End If

    Select Case Me.开票状态.Value
    Case "全部"
    FilterStr = ""

     Case "已开票"
     FilterStr = "开票状态=-1 "

     Case "未开票"
        FilterStr = "开票状态=0"

    End Select
   
    Select Case Me.出货类别.Value
    Case "全部"
    FilterStr = ""

     Case "发货"
     FilterStr = "出货类别='发货' "

     Case "换货"
        FilterStr = "出货类别='换货'"
    
     Case "样品"
        FilterStr = "出货类别='样品'"
    End Select
    If FilterStr <> "" Then strWhere = strWhere & " and " & FilterStr

    strWhere = Mid(strWhere, 6)

    '设置子窗体的筛选器条件
    Me.frm_高压管销售清单_List.Form.Filter = strWhere
    '应用筛选
    Me.frm_高压管销售清单_List.Form.FilterOn = True
End Sub

 

 

Top
煮江品茶 发表于:2016-10-13 12:24:06
简单问题复杂化了

MDZZ 发表于:2016-10-13 13:08:01

  Select Case Me.开票状态.Value
    Case "全部"
    FilterStr = ""

     Case "已开票"
     FilterStr = "开票状态=-1 "

     Case "未开票"
        FilterStr = "开票状态=0"

    End Select
    
    Select Case Me.出货类别.Value
    Case "全部"
    FilterStr = ""

     Case "发货"
     FilterStr = "出货类别='发货' "

     Case "换货"
        FilterStr = "出货类别='换货'"
     
     Case "样品"
        FilterStr = "出货类别='样品'"
    End Select
    If FilterStr <> "" Then strWhere = strWhere & " and " & FilteStr

这部分不觉得有问题吗 



王岚 发表于:2016-10-13 13:08:32
不明白,请指教。

王岚 发表于:2016-10-13 13:33:36

那应该如何做呢?



煮江品茶 发表于:2016-10-13 14:09:16
1、开票状态用值列表,数据源为:-1;开票;0;未开票,绑定列为1,列数为2,列宽为0
2、筛选语句:
dim wh as string
wh="True"


if isnull(me.开始日期.value)=false then
   wh=wh & " and 送货日期>=#" & me.开始日期.value & "#"
end if


if isnull(me.结束日期.value)=false then
   wh=wh & " and 送货日期<=#" & me.结束日期.value & "#"
end if




if (isnull(me.出货类别.value) or me.出货类别.value="全部")=false then
   wh=wh & " and 出货类别='" & me.出货类别.value & "'"
end if


if isnull(me.开票状态.value)=false then
   wh=wh & " and 开票状态=" & me.出货类别.value
end if


Me.frm_高压管销售清单_List.Form.Filter = wh
Me.frm_高压管销售清单_List.Form.FilterOn = True


王岚 发表于:2016-10-17 11:49:55

报错。



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