以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据和逻辑查询问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176628) |
-- 作者:lgz518 -- 发布时间:2022/4/20 22:29: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 雇员 Like " & txt \'tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & " Or 数量 Like " & txt,这个会报错 End If |
-- 作者:有点蓝 -- 发布时间:2022/4/21 9:01:00 -- 数值列不支持like模糊查询,要转换为字符数据 |
-- 作者:lgz518 -- 发布时间:2022/4/21 9:32:00 -- 老师,还有一个功能如何实现,如选择“数量”,条件(大于,小于,不等于,等于),比如:按数量查询,条件从下拉框选中”大于“700的条件,进行查询? |
-- 作者:有点蓝 -- 发布时间:2022/4/21 9:44:00 -- tbl.Filter = " 产品 Like " & txt & " Or 客户 Like " & txt & " Or 数量 " & e.Form.Controls("条件控件").Text & e.Form.Controls("输入700的控件").Text |
-- 作者:lgz518 -- 发布时间: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 执行上面,报错,如下图 |
-- 作者:有点蓝 -- 发布时间:2022/4/21 11:43:00 -- 不要画蛇添足,like才需要做转换,其它情况直接使用,另外ComboBox2里不要使用中文的等于大于,而是要改为=、>这种 |
-- 作者:lgz518 -- 发布时间:2022/4/21 15:09:00 -- 老师,还是问题,请指导,上实例,谢谢! [此贴子已经被作者于2022/4/21 16:14:14编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/4/21 15:17:00 -- 模糊查询和精确查询(=、>这些)要分开处理,不能混用 |
-- 作者:有点蓝 -- 发布时间:2022/4/21 15:20:00 -- 精确查询要根据类型使用合适的用法:http://www.foxtable.com/webhelp/topics/1284.htm 表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。 例如: Tables("订单").Filter = "[产品] = \'PD01\'" \'字符用单引号括起来 [此贴子已经被作者于2022/4/21 15:20:15编辑过]
|
-- 作者:lgz518 -- 发布时间: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 |