以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52397)

--  作者:seal51
--  发布时间:2014/6/15 10:13:00
--  查询问题

见附件, 问题如下:

 

查询在两个数据之间的价格
比如:
规格在15 到25 之间,
大于15,小于25,价格为2.38
我输入规格为18,
查询出来的价格就是2.38
如何做呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip


--  作者:有点甜
--  发布时间:2014/6/15 10:30:00
--  

代码

 

Dim filter As String = "1=1"
Dim val As String = e.Form.Controls("ComboBox1").Text
If val > "" Then
    filter &= " and 材料 = \'" & val & "\'"
End If
val = e.Form.Controls("TextBox1").Text
If val > "" Then
    filter &= " and Convert(规格,\'System.Int64\') >= \'" & val & "\'"
End If
Dim fdr As DataRow = DataTables("价目表").Find(filter, "规格")
Tables("价目表").Filter = "_Identify = " & fdr("_Identify")


--  作者:seal51
--  发布时间:2014/6/15 11:29:00
--  
甜老师, 测试了一下, 不对啊, 比如, 选择材料GJ, 输入规格18, 出来的是105这个规格啊
--  作者:有点甜
--  发布时间:2014/6/15 11:33:00
--  

1、规格列改成 数值列

 

2、代码

 

Dim filter As String = "1=1"
Dim val As String = e.Form.Controls("ComboBox1").Text
If val > "" Then
    filter &= " and 材料 = \'" & val & "\'"
End If
val = e.Form.Controls("TextBox1").Text
If val > "" Then
    filter &= " and 规格 >= \'" & val & "\'"
End If
Dim fdr As DataRow = DataTables("价目表").Find(filter, "规格")
Tables("价目表").Filter = "_Identify = " & fdr("_Identify")


--  作者:seal51
--  发布时间:2014/6/15 11:34:00
--  

再描述一下列子


规格在15 到25 之间

 

规格小于等于15, 价格为1.66, 比如规格是14,10,等, 价格就是1.66, 规格是15, 价格也是1.66


大于15,小于等于25,价格为2.38,

比如规格是16, 18, 24, 25, 价格都是2.38


我输入规格为18,
查询出来的价格就是2.38
如何做呢?


--  作者:有点甜
--  发布时间:2014/6/15 11:35:00
--  
 看4楼
--  作者:seal51
--  发布时间:2014/6/15 11:47:00
--  
谢谢甜老师!