以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多条件查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117117)

--  作者:cxmxjwlmq
--  发布时间:2018/4/6 23:23:00
--  多条件查询

各位大师:想在窗口中设置4个控件,textbox1-textbox4.和一个绑定的副表,当在TEXTBOX1中输入完毕后自动查找并显示在窗口副表中,在TEXTBOX2中输入完毕后自动加上TEXTBOX1的条件进行筛选并显示在窗口的副表中,一直到TEXTBOX4输入并查找完毕,每个TEXTBOX的LEAVE代码怎么写,请指教.


--  作者:byf208
--  发布时间:2018/4/7 0:29:00
--  
Dim Filter As String
With e.Form.Controls("品名")
    If .Value IsNot Nothing Then
        Filter = Filter &   "品名 like \'%" & .Value &   "%\'"
    End If
End With
With e.Form.Controls("生产厂家")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If 
         Filter = Filter &   "生产厂家 like \'%" & .Value &   "%\'"
    End If
End With
With e.Form.Controls("规格")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If 
         Filter = Filter &   "规格 like \'%" & .Value &   "%\'"
    End If
End With
With e.Form.Controls("备注")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If 
         Filter = Filter &   "备注 like \'%" & .Value &   "%\'"
    End If
End With

If Filter > "" Then
    Tables("表A").Filter = Filter
End If

--  作者:cxmxjwlmq
--  发布时间:2018/4/7 1:28:00
--  

谢谢!查询问题已解决,但这结果在表上,窗口绑定的副表不显示查询结果。继续求助


--  作者:cxmxjwlmq
--  发布时间:2018/4/7 1:37:00
--  

Dim tbl As Table = Tables("窗口6_Table1")
Dim Filter   As   String
 With e.Form.Controls("TextBox1")
       If .Value   IsNot   Nothing  Then
         tbl.Filter =   "年度 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("TextBox2")
       If .Value   IsNot   Nothing   Then
           If tbl.Filter > ""   Then
             tbl.Filter = Filter &   " And "
           End   If
         tbl.Filter = Filter &   "月份 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("TextBox3")
       If .Value   IsNot   Nothing   Then
           If tbl.Filter >""   Then
             tbl.Filter = Filter &   " And "
           End   If
         tbl.Filter = Filter &   "日期 = \'" & .Value &   "\'"
       End   If
 End   With
With e.Form.Controls("ComboBox1")
       If .Value   IsNot   Nothing   Then
           If tbl.Filter >""   Then
             tbl.Filter = Filter &   " And "
           End   If
         tbl.Filter = Filter &   "检验区分= \'" & .Value &   "\'"
       End   If
 End   With
With e.Form.Controls("ComboBox2")
       If .Value   IsNot   Nothing   Then
           If tbl.Filter >""   Then
             tbl.Filter = Filter &   " And "
           End   If
         tbl.Filter = Filter &   "班组长= \'" & .Value &   "\'"
       End   If
 End   With
 If   tbl.Filter >   "" Then
     Tables("制造质量管理").Filter =   Filter
 End If

 

代码改成这样,可以在窗口绑定的副表中显示单个的查询结果,有两个条件输入时,便提示语法错误:语法错误:“And”运算符前缺少操作数。

请高手指点!


--  作者:cd_tdh
--  发布时间:2018/4/7 7:12:00
--  
2楼代码没问题的
--  作者:有点蓝
--  发布时间:2018/4/7 9:42:00
--  
Dim tbl As Table = Tables("窗口6_Table1")
Dim Filter   As   String
 With e.Form.Controls("TextBox1")
       If .Value   IsNot   Nothing  Then
           If Filter  > ""   Then
             Filter = Filter &   " And "
           End   If
         Filter  =   "年度 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("TextBox2")
       If .Value   IsNot   Nothing   Then
           If Filter  > ""   Then
             Filter  = Filter &   " And "
           End   If
         Filter = Filter &   "月份 = \'" & .Value &   "\'"
       End   If
 End   With
……

If   Filter >   "" Then
    tbl.Filter =   Filter
     Tables("制造质量管理").Filter =   Filter
 End If
[此贴子已经被作者于2018/4/7 9:43:43编辑过]

--  作者:cxmxjwlmq
--  发布时间:2018/4/7 11:01:00
--  

Dim tbl As Table = Tables("窗口6_Table1")
Dim Filter   As   String
 With e.Form.Controls("TextBox1")
       If .Value   IsNot   Nothing  Then
           If Filter  > ""   Then
             Filter = Filter &   " And "
           End   If
         Filter  =   "年度 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("TextBox2")
       If .Value   IsNot   Nothing   Then
           If Filter  > ""   Then
             Filter  = Filter &   " And "
           End   If
         Filter = Filter &   "月份 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("TextBox3")
       If .Value   IsNot   Nothing   Then
           If Filter  > ""   Then
             Filter  = Filter &   " And "
           End   If
         Filter = Filter &   "日期 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("ComboBox1")
       If .Value   IsNot   Nothing   Then
           If Filter  > ""   Then
             Filter  = Filter &   " And "
           End   If
         Filter = Filter &   "检验区分 = \'" & .Value &   "\'"
       End   If
 End   With
 With e.Form.Controls("ComboBox1")
       If .Value   IsNot   Nothing   Then
           If Filter  > ""   Then
             Filter  = Filter &   " And "
           End   If
         Filter = Filter &   "班组长 = \'" & .Value &   "\'"
       End   If
 End   With
If   Filter >   "" Then
    tbl.Filter =   Filter
     Tables("制造质量管理").Filter =   Filter
 End If

谢谢,按照楼上的改完,达到预想,但是我加了两行命令,筛选检验区分及班组长条件时,系统不报错,但是无筛选数据。检验区分及班组长是字符型的,请老师指教!


--  作者:cxmxjwlmq
--  发布时间:2018/4/7 11:18:00
--  

图片点击可在新窗口打开查看找到了,原来复制时把复选框名字忘记改了!