Foxtable(狐表)用户栏目专家坐堂 → [求助]关于查询代码加入限定条件


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

主题:[求助]关于查询代码加入限定条件

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4261 威望:0 精华:0 注册:2016/4/17 20:05:00
[求助]关于查询代码加入限定条件  发帖心情 Post By:2016/5/20 10:40:00 [只看该作者]

红袍老师,最近两天工作忙,有两天没来这里向你交流。之前我向你求助过全表查询的代码:
Tables("FAJHB").DataTable.Load()
Dim str As String = e.form.controls("textbox22").Text
Dim filter As String = "1=2"
For Each c As Col In CurrentTable.Cols
    filter &= " or convert(" & c.name & ",'System.String') like '%" & str & "%'"
Next
CurrentTable.Filter = filter
这个代码是对Textbox22输入的值在表FAJHB里进行查询,由于公司发货单的有效时间限定为2天,所以在项目的BeforeLoadOuterTable属性里,我加入了以下代码:

If e.DataTableName = "FAJHB"   Then
    Dim StartDate As Date = Date.Today().AddDays(-2)
    e.SelectString = " Select * Fro m {FAJHB} Where [发运日期] > '" & StartDate & "'"
End If
看起来都没问题,但是点击查询按钮后,查询的数据是所有符合条件的数据,如果数据量大,势必会影响查询的效率与速度。我想实现:针对查询,只在近两天的范围内查询,不在近两天范围内的不做查询,你看那个查询代码怎么修改?


[此贴子已经被作者于2016/5/20 10:40:25编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/20 10:42:00 [只看该作者]

代码根本就没有问题,filter筛选的时候,就是针对已经加载的数据,也就是2天的数据。

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4261 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2016/5/20 10:52:00 [只看该作者]

不对啊,比如说我查询的是粤X45889,这一车在5月3日,5月4日,5月10日,5月20日都有记录,但我查询这个粤X45889的时候,5月3日,5月4日,5月10日,5月20日的数据都出来了,我想实现能不能只查询5月19日至5月20日的数据记录,其他的我不要了。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/20 11:00:00 [只看该作者]

这句代码去掉

 

Tables("FAJHB").DataTable.Load()

 

或者写成

 

Dim StartDate As Date = Date.Today().AddDays(-2)

Tables("FAJHB").DataTable.LoadFilter = "[发运日期] > '" & StartDate & "'"

Tables("FAJHB").DataTable.Load()

[此贴子已经被作者于2016/5/20 11:00:07编辑过]

 回到顶部