Office中国论坛/Access中国论坛

标题: #敢问高手有何解释?# [打印本页]

作者: eio    时间: 2003-2-14 02:43
标题: #敢问高手有何解释?#
文件下载[upload=gif]http://www.office-cn.net/vvb/uploadimages/200321318422363085.gif[/img]
点击数据按钮,有错误提示,到底是公式错误、属性错误还是什么原因?其他数据就是不怕[em08]
作者: eio    时间: 2003-2-14 02:49
检验数据只是ABCDEFGHIJJKL的+-*/而尔,所以我被老板骂了一大顿……
作者: zhengjialon    时间: 2003-2-14 02:49
几个按钮按了都没错!
作者: eio    时间: 2003-2-14 02:50
有啊,当数据移动到记录5或者其他,再按“数据……”就是这样
作者: eio    时间: 2003-2-14 02:51
zhengjialon不留心左下角的记录“5”,不是福尔摩斯!
作者: eio    时间: 2003-2-14 02:58
19.21.34.35也是一样
作者: zhengjialon    时间: 2003-2-14 03:09
我发现,只要A的值有小数的就不对了。
作者: eio    时间: 2003-2-14 03:16
标题: 发现但不能解决,只能无可奈何……
我发现都是小于的,因为我用msgbox判断了到底是大于还是小于。
作者: 李寻欢    时间: 2003-2-14 03:34



[此贴子已经被作者于2003-2-13 19:34:21编辑过]


作者: eio    时间: 2003-2-14 04:34
李兄竟然无题?
作者: 李寻欢    时间: 2003-2-14 04:49
“<>”前后的数值要用VAL转换
作者: eio    时间: 2003-2-14 04:53
标题: 大家不再关心我啦
[em01][em01][em01]大家不再关心我啦,我走啦……[em01][em01][em01]
临走写下一段代码:
if nz(access中国的高手)="不再理睬我" then
me.不再来=true
msgbox"真的!"
else
me.不再来=false
msgbox"多谢大家关心"
end if
[em16][em16][em16]
作者: marco2    时间: 2003-2-14 05:13
应该是数字精度问题,在第5条记录在,我试着将A(25.4)重新输入一遍,然后错误消失。
但其他的却不一定成功,故你的写这样语句判断时,应考虑这个问题。
作者: lhwa    时间: 2003-2-14 05:18
让我告诉你,问题出在小数点上。你在D、E、C、A等几个文本框的属性中将小数位数保留为1位数,就没此问题了。
作者: marco2    时间: 2003-2-14 05:31
TO: lhwa
保留1位并不能完全解决实际问题,你不妨试试第21条记录!

作者: lhwa    时间: 2003-2-14 05:49
标题: to 楼上兄弟
21条我试过没问题。
如你还有担心,将A文本框的小数位数设置成2位乃至3位都可以。
作者: marco2    时间: 2003-2-14 06:04
数字精度是本题的关键,相信大家都没有意见了,但是否如lhwa兄所述之法可以解决,我倒是测不出来,因为用了lhwa的方法后,发现21条还是会出错。
故请lhwa将你改的文件传上来吧!
作者: lhwa    时间: 2003-2-14 06:32
标题: 来也
文件下载
作者: 步步高    时间: 2003-2-14 06:40
试了一下,“<>”前后的数值用VAL转换确实没有问题了。
另35条记录本身确实有问题,146+36.5>182.2
作者: eio    时间: 2003-2-14 07:04
到底还是不知什么原因,我弄了一晚,明天肯能要革职了
作者: eio    时间: 2003-2-14 07:07
以下是引用lhwa在2003-2-13 22:31:35的发言:
文件下载
此例子好像什么也没有变--无效--enabled=false
作者: 步步高    时间: 2003-2-14 07:13
在大于号,小于号左右的表达式上加val,好像就没问题了吗!
如If Val(B + H) <> Val(G) Then
MsgBox "B+H<>G", vbCritical, "数据有误"
Else
If Val(H + F) <> Val(B) Then
MsgBox "H+F<>B", vbCritical, "数据有误"
Else
If Val(2 * D + 2 * E + C) <> Val(A) Then
MsgBox vbCritical, "数据有误"
End If
End If
End If
作者: eio    时间: 2003-2-14 07:19
以下是完满解决的方法,终于可以休息啦,所以msgbox"access-CN还是要来啊!"

Private Sub 检验数据_Click()
If Val(Nz(B) + Nz(H)) <> Val(Nz(G)) Then
MsgBox "B+H<>G", vbCritical, "数据有误"
Else
If Val(Nz(H) + Nz(F)) <> Val(Nz(B)) Then
MsgBox "H+F<>B", vbCritical, "数据有误"
Else
If Val(2 * Nz(D) + 2 * Nz(E) + Nz(C)) <> Val(Nz(A)) Then
MsgBox vbCritical, "数据有误"
End If
End If
End If
End Sub[em27][em27]
作者: 步步高    时间: 2003-2-14 07:23
原来如此。。。
作者: eio    时间: 2003-2-14 07:24
标题: 最后还是要多谢大家:
zhengjialon,李寻欢,marco2,lhwa,步步高……等同志,(排名不分先后),我想我要好好休息啦,否则明天将是另一个原因被革职:迟到啊![em05]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3