以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]有点甜老师,这种输入查询怎么做 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=115559) |
-- 作者:tygzjsl -- 发布时间:2018/3/9 9:27:00 -- [求助]有点甜老师,这种输入查询怎么做 有点甜老师,还得麻烦你!我现在想实现这样的查询,自己看帮助文件 怎么也做不出来 第二个地域专业查询,输入地域和专业,比如,湖南,四川,电气,植物保护等,这得在两个列中查询啊,太难了),就能把即符合地域和专业的查询出来。这也是模糊查询吧,比如黑龙江,只要输入黑 这是您帮我写的代码,中间需要加什么,两个输入框分别是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("院校地区:") |
-- 作者:tygzjsl -- 发布时间:2018/3/9 18:27:00 -- 嗯非常谢谢,但是在两个列之间输入时还是用空格吗 用空格出现了很多 |