Foxtable(狐表)用户栏目专家坐堂 → [求助]关于模糊查询


  共有2838人关注过本帖树形打印复制链接

主题:[求助]关于模糊查询

帅哥哟,离线,有人找我吗?
工匠
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
[求助]关于模糊查询  发帖心情 Post By:2019/3/11 17:27:00 [只看该作者]

老师好,现在有个情况,在窗口根据文本框内容模糊查询时,如果文本框内容为空的话,会对整个表进行加载,数据量大就直接无响应。请教一下,该怎样在文本框内容为空的情况下,不进行查询,并提示查询条件不能为空,谢谢!

Dim t As Table = Tables("订单表")
Dim str As String = e.Form.controls("textbox1").text
Dim filter As String = "1=1"
For Each s As String In str.Split("*")
    filter &= " and 订单号 like '%" & s & "%'"
Next
DataTables("订单表").loadfilter= filter
DataTables("订单表").load

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/11 17:35:00 [只看该作者]

1、修改代码

 

Dim t As Table = Tables("订单表")
Dim str As String = e.Form.controls("textbox1").text
Dim filter As String = "1=1"
For Each s As String In str.Split("*")
    filter &= " and 订单号 like '%" & s & "%'"
Next
If filter <> "1=1" Then
    DataTables("订单表").loadfilter= filter
    DataTables("订单表").load
End If

 

2、你查询的时候,如果数据量过大,可以用分页处理

 

http://www.foxtable.com/webhelp/scr/1928.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
工匠
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2019/3/11 18:16:00 [只看该作者]

谢谢有点甜老师,分页加载是可以控制加载量。好像修改代码,对文本框“textbox1”为空时,还是会查询出数据来,需求是文本框“textbox1”为空时,不要查询出数据(分页加载不显示一行数据),请老师再帮看看,改下代码,谢谢!
[此贴子已经被作者于2019/3/11 18:16:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/11 18:32:00 [只看该作者]

Dim t As Table = Tables("订单表")
Dim str As String = e.Form.controls("textbox1").text
Dim filter As String = "1=1"
For Each s As String In str.Split("*")
    filter &= " and 订单号 like '%" & s & "%'"
Next
If filter <> "1=1" Then
    DataTables("订单表").loadfilter= filter
    DataTables("订单表").load

Else

    DataTables("订单表").loadfilter= "1=2"
    DataTables("订单表").load
End If


 回到顶部
帅哥哟,离线,有人找我吗?
工匠
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2019/3/11 19:32:00 [只看该作者]

谢谢老师,很奇怪,文本框为空值(没有录入内容),点查询A按钮,还是会对订单表进行加载,需要不加载。实际项目使用地方:扫码订单号找到唯一的订单号对应产品码,窗口另一文本框默认绑定该单号对应的产品码,点另个B按钮,查出该产品码的零件表清单(用于生产打领料单)。现在是按下按钮A,同时虚拟按下按钮B的效果。如果是按分页加载,如果单号文本框为空,按下A按钮,会带出设置的加载行数,会对后续操作造成极大困惑。如果按下A按钮,订单号的产品码才零件表没有值,也会带出分页加载带出的行数,困惑更大。(用的外部数据,部分清单不完整),请老师有时间再帮看看,怎么弄,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106092 积分:539565 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/11 20:02:00 [只看该作者]

Dim str As String = e.Form.controls("textbox1").text
If str > "" Then
    Dim filter As String = "1=1"
    For Each s As String In str.Split("*")
        filter &= " and 订单号 like '%" & s & "%'"
    Next
    DataTables("订单表").loadfilter= filter
    DataTables("订单表").load
Else
    DataTables("订单表").loadfilter= "1=2"
    DataTables("订单表").load
End If

 回到顶部
帅哥哟,离线,有人找我吗?
工匠
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4830 威望:0 精华:0 注册:2017/4/20 11:08:00
  发帖心情 Post By:2019/3/16 17:44:00 [只看该作者]

谢谢老师,问题已解决,再次谢谢!

 回到顶部