以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]有点甜老师,这种输入查询怎么做  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115559)

--  作者:tygzjsl
--  发布时间:2018/3/9 9:27:00
--  [求助]有点甜老师,这种输入查询怎么做
有点甜老师,还得麻烦你!我现在想实现这样的查询,自己看帮助文件 怎么也做不出来

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
第一个专业查询中,输入专业(可以是材料一个和多个专业,比如电气,植物等,)就能把有这些专业电气自动化和植物保护的院校查询出来。这得需要模糊查询吧
第二个地域专业查询,输入地域和专业,比如,湖南,四川,电气,植物保护等,这得在两个列中查询啊,太难了),就能把即符合地域和专业的查询出来。这也是模糊查询吧,比如黑龙江,只要输入黑
这是您帮我写的代码,中间需要加什么,两个输入框分别是textbox6和textbox7,地域标题是院校地址,列名是yxdz,专业名称列名zymc
Dim Filter As String = "1=1"
Dim v1 As String = e.form.controls("textbox1").text
If v1 > "" Then
    filter &= " And zdffs >= " & v1
End If
Dim v2 As String = e.form.controls("textbox2").text
If v2 > "" Then
    filter &= " And zgffs <= " & v2
End If


With e.Form.Controls("院校地区:")
    If .Value IsNot Nothing Then
        Filter &= " and yxdq = \'" & .Value & "\'"
    End If
End With


还有一个问题,我的电子表格有20多万行,扩展名是xlsx,不支持导入啊,商业版可以支持吗
[此贴子已经被作者于2018/3/9 9:44:44编辑过]

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

1、2、用like模糊查询即可

 

With e.Form.Controls("院校地区:")
    If .Value IsNot Nothing Then
        Filter &= " and yxdq like \'%" & .Value & "%\'"
    End If
End With
 
 
如果还是无法导入,你可以把xlsx文件分割成多个少量的xls文件,比如每个5万行,然后再导入。

--  作者:tygzjsl
--  发布时间:2018/3/9 10:36:00
--  
真的厉害,如果一起输入两个专业,比如,电气,机械,那又怎么办,是再加一个输入框吗,在一个输入框不能实现吗,用写两次
 If .Value IsNot Nothing Then
        Filter &= " and yxdq like \'%" & .Value & "%\'"
    End If

还有第二种,两个列一起查询怎么办

--  作者:tygzjsl
--  发布时间:2018/3/9 10:48:00
--  
主要是一个输入框输入两个或多外专业名称,难做啊,谢谢辛苦啦
--  作者:有点甜
--  发布时间:2018/3/9 11:07:00
--  
以下是引用tygzjsl在2018/3/9 10:48:00的发言:
主要是一个输入框输入两个或多外专业名称,难做啊,谢谢辛苦啦

 

多个这样写

 

With e.Form.Controls("院校地区:")
    If .Value IsNot Nothing Then
        Dim str As String = ""
        For Each s As String In .value.split(",")
            str &= "yxdq like \'%" & s & "%\' or "
        Next
        Filter &= " and (" & str.substring(0, str.length-4) & ")"
    End If
End With
 

--  作者:tygzjsl
--  发布时间:2018/3/9 11:16:00
--  
输入的时候,有要求吗,比如,电气会计,中间用什么隔开啥的,刚才调试了,还不行,谢谢!
--  作者:有点甜
--  发布时间:2018/3/9 12:21:00
--  
以下是引用tygzjsl在2018/3/9 11:16:00的发言:
输入的时候,有要求吗,比如,电气会计,中间用什么隔开啥的,刚才调试了,还不行,谢谢!

 

用英文的逗号分隔,如 计算机,会计

 

如果要用空格分隔,就这样写代码

 

With e.Form.Controls("院校地区:")
    If .Value IsNot Nothing Then
        Dim str As String = ""
        For Each s As String In .value.split(" ")
            str &= "yxdq like \'%" & s & "%\' or "
        Next
        Filter &= " and (" & str.substring(0, str.length-4) & ")"
    End If
End With
 

--  作者:tygzjsl
--  发布时间:2018/3/9 13:44:00
--  
你太牛啦,中午都没有休息,太感谢了!满足两个列的查询是不是更复杂,也就是一个输入框中,输入两个或多个列的内容,非常感谢!
--  作者:有点甜
--  发布时间:2018/3/9 15:04:00
--  
以下是引用tygzjsl在2018/3/9 13:44:00的发言:
你太牛啦,中午都没有休息,太感谢了!满足两个列的查询是不是更复杂,也就是一个输入框中,输入两个或多个列的内容,非常感谢!

 

如果两个列,建议分开两个textbox控件分别输入。代码参考7楼。

 

如果要在一个控件处理,适当修改条件,如

 

With e.Form.Controls("院校地区:")
    If .Value IsNot Nothing Then
        Dim str As String = ""
        For Each s As String In .value.split(" ")
            str &= "yxdq like \'%" & s & "%\' or 第十列 Like \'%" & s & "%\' or "
        Next
        Filter &= " and (" & str.substring(0, str.length-4) & ")"
    End If
End With


--  作者:tygzjsl
--  发布时间:2018/3/9 18:27:00
--  
嗯非常谢谢,但是在两个列之间输入时还是用空格吗 用空格出现了很多