Foxtable(狐表)用户栏目专家坐堂 → [求助]对数值的查询筛选


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

主题:[求助]对数值的查询筛选

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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
[求助]对数值的查询筛选  发帖心情 Post By:2016/6/17 17:15:00 [只看该作者]

Dim t As Table = Tables("窗口1_table1")
Dim sql As String
Dim st As String = e.Form.Controls("TextBox1").text
If st > "" Then
   sql = "select * fro m {订单} where  CStr(IIf(单价 is null ,0,单价)) = '" & st & "' or CStr(IIf(数量 is null ,0,数量)) = '" & st & "'"
   t.fill(sql,"yy",True)
   t.AutoSizeCols()
End If

对-1和1之间数值(不包括-1和1)比如-0.2,0.5等数值都不能筛选,而其它数值都可以筛选.求解?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.zip



[此贴子已经被作者于2016/6/17 17:18:37编辑过]

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


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

Dim t As Table = Tables("窗口1_table1")
Dim sql As String
Dim st As String = e.Form.Controls("TextBox1").text
If st > "" Then
    sql = "select * fr om {订单} where IIf(单价 is null ,0,单价) >= " & st-0.000001 & " and IIf(单价 is null ,0,单价) <= " & st + 0.000001 & " or IIf(数量 is null ,0,数量) >= " & st-0.000001 & " and IIf(数量 is null ,0,数量) <= " & st+0.000001 & ""
    t.fill(sql,"yy",True)
    t.AutoSizeCols()
End If

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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2016/6/17 19:29:00 [只看该作者]

测试通过!
难道输入数值0.5,在数据库中实际值会变为0.4999999999...? 但大于1的小数值又能精确查询?数据库真是太深奥了.
要不是老师指点,就是想破脑袋也不知如何解决.

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/18 8:29:00 [只看该作者]

0.5= 0.499999

 

这样的问题,通常不会发生,你的数据应该是从其他地方导入的,之前是其他软件处理的。

 

你在SQL执行窗口,执行一遍:

 

upda te {订单} Set [折扣] = Round(cint([折扣] * 100)/ 100,2)


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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2016/6/18 15:56:00 [只看该作者]

狐爸: upda te 后还是不能查询大于-1 且 小于 1 的小数值(原代码).
        而大红袍老师的代码能够查询.
        换成新的数据库(foxtable安装系统的"订单.mdb")还是一样.

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


加好友 发短信
等级:童狐 帖子:298 积分:4225 威望:0 精华:0 注册:2009/11/4 16:30:00
  发帖心情 Post By:2016/6/18 16:12:00 [只看该作者]

问题已解决,去掉Cstr 和 ' ' 就也能查询.

 回到顶部