Access交流中心

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

多条件VBA代码搜索问题,请教

玻璃球  发表于:2021-05-11 16:36:39  
复制

请大佬帮忙看看这个代码该怎么写,谢谢

关于发票的搜索,因为受限于单张开票金额的限制,一次可能开出多张发票,表中的发票字段为文本格式,窗体中的发票号码字段设置为数字格式,

假如当次开票数量为10张,发票号码1-10号

我搜索第6张,他也能显示此次开票记录。请大佬帮忙看看。小弟在此谢过



Dim StrWhere As String
        StrWhere = "" '设定初始值为空字符串
    If Not IsNull(Me.Txt_发票编号) Or Me.Txt_发票编号 = "" Then
        StrWhere = StrWhere & "([invid] like '*" & Trim(Me.Txt_发票编号) & "*')And"
    End If
    If Not IsNull(Me.Txt_合同名称) Or Me.Txt_合同名称 = "" Then
        StrWhere = StrWhere & "([title] like '*" & Trim(Me.Txt_合同名称) & "*')and"
    End If
   If Not IsNull(Me.Txt_SDate) And Not IsNull(Me.Txt_EDate) Then
        StrWhere = StrWhere & " InvDate between #" & Txt_SDate & "# and #" & Txt_EDate & "# And"
   End If
'   If Not IsNull(Me.Txt_发票号码) Or Me.Txt_发票号码 = "" Then
'        StrWhere = StrWhere & " InvDate >= val(Me.Txt_发票号码)  & And"
'   End If

     
    If Len(StrWhere) > 0 Then
    StrWhere = Left(StrWhere, Len(StrWhere) - 3) '去掉多余的and
    End If
    Debug.Print StrWhere '先在立即窗口显示一下strwhere的值
    Me.发票信息_子窗体.Form.Filter = StrWhere
    Me.发票信息_子窗体.Form.FilterOn = True

 

Top
leoyoung 发表于:2021-05-12 07:30:59

若发票号码为文本类型,且字段名为InvNu,则:

...

StrWhere = StrWhere & " InvNu >= '" & Me.Txt_发票号码 & "' And"

...

还有,上面的有2个Where后面的代码中,and前貌似少了空格 

... "*')And" 中间应该有个空格吧  "*') And" 




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