以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口中的查询的按钮代码如何写  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119590)

--  作者:zyxhx
--  发布时间:2018/5/28 11:07:00
--  窗口中的查询的按钮代码如何写
我在窗口中设计一组合框,一个查询按钮,在组合框中输入,姓名的任意一个字符,或联系电话实现查询功能,请问按钮代码要如何写?

下面是我写的一段代码,但只能输入完整姓名才能查询,且不能输入联系电话查询,请专家修改:

Dim Filter As String
With e.Form.Controls("cmbCustomer")
    If .Value IsNot Nothing Then
        If filter >"" Then
            filter = filter & " and "
        End If
        filter = filter & "姓名 = \'" & .value & " \'"
        End If
End With
If filter > "" Then
    Tables("糖尿病人员列表").filter = filter
End If

--  作者:有点甜
--  发布时间:2018/5/28 11:10:00
--  

filter = filter & "姓名 = \'" & .value & " \'"

 

改成

 

filter = filter & "姓名 like \'%" & .value & "%\'"


--  作者:有点甜
--  发布时间:2018/5/28 11:12:00
--  

filter = filter & "姓名 like \'%" & .value & "%\' or 联系电话 like \'%" & .value & "%\'"


--  作者:zyxhx
--  发布时间:2018/5/28 11:52:00
--  
谢谢!
--  作者:zyxhx
--  发布时间:2018/5/28 12:27:00
--  
再请教老师:用以下代码需要按下查询按钮时执行,如果我想直接在组合框中随输入字符时表中数据动态变化查询,而不用点击查询按钮,请问在哪个事件中写代码?代码如何修改?

Dim Filter As String
With e.Form.Controls("cmbCustomer")
    If .Value IsNot Nothing Then
        If filter >"" Then
            filter = filter & " and "
        End If
        filter = filter & "姓名 like \'%" & .value & "%\' or 联系电话 like \'%" & .value & "%\' or 健康档案号 like \'%" & .value & "%\' or 身份证号码 like \'%" & .value & "%\' or 家庭编号 like \'%" & .value & "%\'"
        End If
End With
If filter > "" Then
    Tables("糖尿病人员列表").filter = filter
End If

--  作者:zyxhx
--  发布时间:2018/5/28 13:41:00
--  
我在TextChanged事件中写入如下代码,实现了动态查询功能,请老师看一下对不对,还有没有更好的方法?

Dim Filter As String 
Dim text As String = e.Form.Controls("cmbCustomer").text
    If text IsNot Nothing Then
        If filter >"" Then
            filter = filter & " and "
        End If
        filter = filter & "姓名 like \'%" & text & "%\' or 联系电话 like \'%" & text & "%\' or 健康档案号 like \'%" & text & "%\' or 身份证号码 like \'%" & text & "%\' or 家庭编号 like \'%" & text & "%\'"
        End If

If filter > "" Then
    Tables("糖尿病人员列表").filter = filter
End If

--  作者:有点甜
--  发布时间:2018/5/28 14:23:00
--  

回复楼上,就是这样写代码。

 

Dim Filter As String
Dim text As String = e.Form.Controls("cmbCustomer").text
filter = "姓名 like \'%" & text & "%\' or 联系电话 like \'%" & text & "%\' or 健康档案号 like \'%" & text & "%\' or 身份证号码 like \'%" & text & "%\' or 家庭编号 like \'%" & text & "%\'"
Tables("糖尿病人员列表").filter = filter


--  作者:zyxhx
--  发布时间:2018/5/28 22:28:00
--  
谢谢老师指点。