以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]模糊查询加条件判断不执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178846)

--  作者:洮沙
--  发布时间:2022/7/23 18:40:00
--  [求助]模糊查询加条件判断不执行

老师计划根据文本框中内容并依据单选按钮条件进行模糊查询,以下“点击模糊查询”代码只按照全部条件进行查询:

 
图片点击可在新窗口打开查看此主题相关图片如下:6.png
图片点击可在新窗口打开查看

Dim Filter As String
Dim tbl As Table = Tables("客户")
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        Dim txt1 As String = .Value
        txt1 = "\'%" & txt1 & "%\'"
        Filter = "客户编号 Like " & txt1 & " Or 客户名称 Like " & txt1
        If e.Form.Controls("RadioButton1").Checked = True Then \'如果选择正常客户
            Filter = Filter & " And " & "停用 = False "
        End If
        If e.Form.Controls("RadioButton2").Checked = True Then \'如果选择停用客户
            Filter = Filter & " And " & "停用 = True "
        End If
        If e.Form.Controls("RadioButton3").Checked = True Then \'如果选择全部客户
            Filter = Filter
        End If
    Else
        If e.Form.Controls("RadioButton1").Checked = True Then \'如果选择正常客户
            Filter = "停用 = False "
        End If
        If e.Form.Controls("RadioButton2").Checked = True Then \'如果选择停用客户
            Filter = "停用 = True "
        End If
        If e.Form.Controls("RadioButton3").Checked = True Then \'如果选择全部客户
            Filter = Filter
        End If
    End If
End With
tbl.DataTable.loadFilter = Filter
tbl.DataTable.loadPage = 0
tbl.DataTable.load
e.Form.Controls("Label7").text = "数据状态:筛选"
Functions.Execute("客户窗口页面统计")

麻烦帮忙改一下,谢谢!

 

文本框无内容,可以根据单选按钮执行。有内容无法执行。


[此贴子已经被作者于2022/7/23 18:42:51编辑过]

--  作者:洮沙
--  发布时间:2022/7/23 20:43:00
--  

自行模式解决了:

  Filter = "(客户编号 Like " & txt1 & " Or 客户名称 Like " & txt1 & ")"

 

添加蓝色部分可以正常查询,但是如果前一次根据“正常”单选框条件进行筛选,不改变单选框选择状态(也就是不单击任一单选框),查询结果出错。

为此在代码前面加入以下代码:

 

For Each ctl As WinForm.Control In e.Form.Controls \'遍历所有控件
    If TypeOf ctl Is WinForm.RadioButton Then \'如果此控件是RadionButton(单选框)
        Dim rdo As WinForm.RadioButton = ctl
        If rdo.Checked Then \'如果已经选中
            rdo.Select \'将焦点移到控件上  不知是否有代码可以模拟单击或者重新选中?老师指点一下

            Exit For
        End If
    End If
Next

[此贴子已经被作者于2022/7/23 20:44:58编辑过]

--  作者:有点蓝
--  发布时间:2022/7/24 19:45:00
--  
参考这里用法:http://www.foxtable.com/webhelp/topics/1058.htm