Foxtable(狐表)用户栏目专家坐堂 → 数据和逻辑查询问题


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

主题:数据和逻辑查询问题

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


加好友 发短信
等级:六尾狐 帖子:1271 积分:8670 威望:0 精华:0 注册:2019/6/13 9:57:00
数据和逻辑查询问题  发帖心情 Post By:2022/4/20 22:29:00 [只看该作者]

如何实现如图的查询?
需求是:按分类:选择(产品,客户,雇员),分类内容:(产品,客户,雇员等的数据),按数量(单价,折扣,数量),
条件(大于,小于,不等于,等于),查询内容 是(单价,折扣,数量的数据),已付款的逻辑的条件进行查询。


图片点击可在新窗口打开查看此主题相关图片如下:模糊查询.jpg
图片点击可在新窗口打开查看

下面是实现,字符的字段,如何实现“数字的字段的按条件,及逻辑的字段”?

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("订单")

If txt = "" Then   

    tbl.Filter = ""  

Else   

    txt = "'%" & txt & "%'"

  tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or 雇员 Like " & txt

 'tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or 数量 Like " & txt,这个会报错


End If

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/21 9:01:00 [只看该作者]

数值列不支持like模糊查询,要转换为字符数据

tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or convert(数量,'System.String') Like " & txt

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


加好友 发短信
等级:六尾狐 帖子:1271 积分:8670 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/21 9:32:00 [只看该作者]

老师,还有一个功能如何实现,如选择“数量”,条件(大于,小于,不等于,等于),比如:按数量查询,条件从下拉框选中”大于“700的条件,进行查询?

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/21 9:44:00 [只看该作者]

tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or 数量 " & e.Form.Controls("条件控件").Text & e.Form.Controls("输入700的控件").Text

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


加好友 发短信
等级:六尾狐 帖子:1271 积分:8670 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/21 11:37:00 [只看该作者]

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("订单")

If txt = "" Then   

    tbl.Filter = ""  

Else   

    txt = "'%" & txt & "%'"

 tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or convert(数量,'System.String') Like " & e.Form.Controls("ComboBox2").Text & e.Form.Controls("TextBox1").Text

End If
执行上面,报错,如下图


此主题相关图片如下:查询2.jpg
按此在新窗口浏览图片




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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/21 11:43:00 [只看该作者]

不要画蛇添足,like才需要做转换,其它情况直接使用,另外ComboBox2里不要使用中文的等于大于,而是要改为=、>这种

tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or 数量 " & e.Form.Controls("ComboBox2").Text & e.Form.Controls("TextBox1").Text

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


加好友 发短信
等级:六尾狐 帖子:1271 积分:8670 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/21 15:09:00 [只看该作者]

老师,还是问题,请指导,上实例,谢谢!


[此贴子已经被作者于2022/4/21 16:14:14编辑过]

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/21 15:17:00 [只看该作者]

模糊查询和精确查询(=、>这些)要分开处理,不能混用

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/21 15:20:00 [只看该作者]

精确查询要根据类型使用合适的用法:http://www.foxtable.com/webhelp/topics/1284.htm

表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。

例如:

Tables("订单").Filter = "[产品] = 'PD01'"  '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#"  '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1"  '数值直接使用


判断列类型参考:http://www.foxtable.com/webhelp/topics/1375.htm

[此贴子已经被作者于2022/4/21 15:20:15编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1271 积分:8670 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/4/21 21:24:00 [只看该作者]

tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & "  Or 数量 " & e.Form.Controls("ComboBox6").Text & e.Form.Controls("TextBox3").Text
问题1:这个在正表可执行,如何改为副表也可执行?

把上面代码为下面,出现问题:

问题2:改下面,没报错,不执行?
tbl.Filter = "  数量 " & e.Form.Controls("ComboBox6").Text & e.Form.Controls("TextBox3").Text

问题3:改下面,报错,提示,应为结束语句?
tbl.Filter = " 数量 " & e.Form.Controls("ComboBox6").Text & e.Form.Controls("TextBox3").Text" & txt & " Or 金额 " & e.Form.Controls("ComboBox6").Text & e.Form.Controls("TextBox3").Text " & txt & "  Or 折扣 " & e.Form.Controls("ComboBox6").Text & e.Form.Controls("TextBox3").Text


 回到顶部
总数 21 1 2 3 下一页