Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

用窗体输入数据后,多个含小数的数值参与计算,提示类型不匹配,同时输入进去的2位小数在使用编辑后会变成很多位小数

杨乐  发表于:2019-09-21 08:44:43  
复制

保存单机代码码:

    If rst.EOF Then

    rst.AddNew
    rst!ZZYFY = Round([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY], 0)
    rst!ZYBBXFY = Round([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY], 0)
    rst!ZDBBCFY = Round([D1CZYDBBCFY] + [D2CZYDBBCFY] + [D3CZYDBBCFY] + [D4CZYDBBCFY] + [D5CZYDBBCFY], 0)
    rst!ZBCBXBCFY = Round([D1CZYBCBXBCFY] + [D2CZYBCBXBCFY] + [D3CZYBCBXBCFY] + [D4CZYBCBXBCFY] + [D5CZYBCBXBCFY], 0)
    rst!ZQTBCFY = Round([D1CZYQTBCFY] + [D2CZYQTBCFY] + [D3CZYQTBCFY] + [D4CZYQTBCFY] + [D5CZYQTBCFY], 0)
    rst!ZZFFY = Round([D1CZYZFFY] + [D2CZYZFFY] + [D3CZYZFFY] + [D4CZYZFFY] + [D5CZYZFFY], 0)
    rst!GRZFFY = Round([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] - [D1CZYYBBXFY] - [D2CZYYBBXFY] - [D3CZYYBBXFY] - [D4CZYYBBXFY] - [D5CZYYBBXFY] - [D1CZYDBBCFY] - [D2CZYDBBCFY] - [D3CZYDBBCFY] - [D4CZYDBBCFY] - [D5CZYDBBCFY] - [D1CZYBCBXBCFY] - [D2CZYBCBXBCFY] - [D3CZYBCBXBCFY] - [D4CZYBCBXBCFY] - [D5CZYBCBXBCFY] - [D1CZYQTBCFY] - [D2CZYQTBCFY] - [D3CZYQTBCFY] - [D4CZYQTBCFY] - [D5CZYQTBCFY], 2)
    rst!DBJZSQJE = Round(IIf(Round(([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY]) * 0.85, 2) - [D1CZYYBBXFY] - [D2CZYYBBXFY] - [D3CZYYBBXFY] - [D4CZYYBBXFY] - [D5CZYYBBXFY] - [D1CZYDBBCFY] - [D2CZYDBBCFY] - [D3CZYDBBCFY] - [D4CZYDBBCFY] - [D5CZYDBBCFY] - [D1CZYBCBXBCFY] - [D2CZYBCBXBCFY] - [D3CZYBCBXBCFY] - [D4CZYBCBXBCFY] - [D5CZYBCBXBCFY] - _
        [D1CZYQTBCFY] - [D2CZYQTBCFY] - [D3CZYQTBCFY] - [D4CZYQTBCFY] - [D5CZYQTBCFY] > Round(IIf([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] - [D1CZYZFFY] - [D2CZYZFFY] - [D3CZYZFFY] - [D4CZYZFFY] - [D5CZYZFFY] > 30000, Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.5, 2), Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.3, 2)), 2), Round(IIf([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] - [D1CZYZFFY] - [D2CZYZFFY] - [D3CZYZFFY] - [D4CZYZFFY] - [D5CZYZFFY] > 30000, Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.5, 2), Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.3, 2)), 2), _
        Round(([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY]) * 0.85, 2) - [D1CZYYBBXFY] - [D2CZYYBBXFY] - [D3CZYYBBXFY] - [D4CZYYBBXFY] - [D5CZYYBBXFY] - [D1CZYDBBCFY] - [D2CZYDBBCFY] - [D3CZYDBBCFY] - [D4CZYDBBCFY] - [D5CZYDBBCFY] - [D1CZYBCBXBCFY] - [D2CZYBCBXBCFY] - [D3CZYBCBXBCFY] - [D4CZYBCBXBCFY] - [D5CZYBCBXBCFY] - _
        [D1CZYQTBCFY] - [D2CZYQTBCFY] - [D3CZYQTBCFY] - [D4CZYQTBCFY] - [D5CZYQTBCFY]), 0)
    rst!ZZGRZFFY = Round(Round([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] - [D1CZYYBBXFY] - [D2CZYYBBXFY] - [D3CZYYBBXFY] - [D4CZYYBBXFY] - [D5CZYYBBXFY] - [D1CZYDBBCFY] - [D2CZYDBBCFY] - [D3CZYDBBCFY] - [D4CZYDBBCFY] - [D5CZYDBBCFY] - [D1CZYBCBXBCFY] - [D2CZYBCBXBCFY] - [D3CZYBCBXBCFY] - [D4CZYBCBXBCFY] - [D5CZYBCBXBCFY] - [D1CZYQTBCFY] - [D2CZYQTBCFY] - [D3CZYQTBCFY] - [D4CZYQTBCFY] - [D5CZYQTBCFY], 2) - _
        IIf(Round(([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY]) * 0.85, 2) - [D1CZYYBBXFY] - [D2CZYYBBXFY] - [D3CZYYBBXFY] - [D4CZYYBBXFY] - [D5CZYYBBXFY] - [D1CZYDBBCFY] - [D2CZYDBBCFY] - [D3CZYDBBCFY] - [D4CZYDBBCFY] - [D5CZYDBBCFY] - [D1CZYBCBXBCFY] - [D2CZYBCBXBCFY] - [D3CZYBCBXBCFY] - [D4CZYBCBXBCFY] - [D5CZYBCBXBCFY] - _
        [D1CZYQTBCFY] - [D2CZYQTBCFY] - [D3CZYQTBCFY] - [D4CZYQTBCFY] - [D5CZYQTBCFY] > Round(IIf([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] - [D1CZYZFFY] - [D2CZYZFFY] - [D3CZYZFFY] - [D4CZYZFFY] - [D5CZYZFFY] > 30000, Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.5, 2), Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.3, 2)), 2), Round(IIf([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] - [D1CZYZFFY] - [D2CZYZFFY] - [D3CZYZFFY] - [D4CZYZFFY] - [D5CZYZFFY] > 30000, Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.5, 2), Round(([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY]) * 0.3, 2)), 2), _
        Round(([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY]) * 0.85, 2) - [D1CZYYBBXFY] - [D2CZYYBBXFY] - [D3CZYYBBXFY] - [D4CZYYBBXFY] - [D5CZYYBBXFY] - [D1CZYDBBCFY] - [D2CZYDBBCFY] - [D3CZYDBBCFY] - [D4CZYDBBCFY] - [D5CZYDBBCFY] - [D1CZYBCBXBCFY] - [D2CZYBCBXBCFY] - [D3CZYBCBXBCFY] - [D4CZYBCBXBCFY] - [D5CZYBCBXBCFY] - _
        [D1CZYQTBCFY] - [D2CZYQTBCFY] - [D3CZYQTBCFY] - [D4CZYQTBCFY] - [D5CZYQTBCFY]), 0)


所有的数据全部用的双精度,


数据含有的小数较少,可以正常保存

录入的数据含有的小数较多,提示类型不匹配

除了大病救助申请,用ROUND函数时取整和最终个人自付  ,用ROUND函数时取2位小数,数据没有发生变化。其他的数据基本上都发生了变化,包括本身录入的数据。

rst!DBJZSQJE = Round(IIf(Round(([D1CZ***, 0)

    rst!ZZGRZFFY = Round(Round([D1CZYZFY] + ***, 2)


请大神帮忙看看哪里出了问题,非常感谢!!!

 

Top
杨乐 发表于:2019-09-21 08:52:50

我发的这个代码,我把所有计算的数都用round函数都取整了,还算是留2位小数还是取整,都存在问题




杨乐 发表于:2019-09-21 08:56:36

我发现只有用了多层round函数的数字没有变,不会是每个数值都要用round函数过一遍吧,还是窗体本身有问题?窗体我用的是一键生成



杨乐 发表于:2019-09-21 09:09:10
   rst!ZZYFY = Round(Round([D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY], 2), 2)
    rst!ZYBBXFY = Round(Round([D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY], 2), 2)
    rst!ZDBBCFY = Round(Round([D1CZYDBBCFY] + [D2CZYDBBCFY] + [D3CZYDBBCFY] + [D4CZYDBBCFY] + [D5CZYDBBCFY], 2), 2)
    rst!ZBCBXBCFY = Round(Round([D1CZYBCBXBCFY] + [D2CZYBCBXBCFY] + [D3CZYBCBXBCFY] + [D4CZYBCBXBCFY] + [D5CZYBCBXBCFY], 2), 2)
    rst!ZQTBCFY = Round(Round([D1CZYQTBCFY] + [D2CZYQTBCFY] + [D3CZYQTBCFY] + [D4CZYQTBCFY] + [D5CZYQTBCFY], 2), 2)
    rst!ZZFFY = Round(Round([D1CZYZFFY] + [D2CZYZFFY] + [D3CZYZFFY] + [D4CZYZFFY] + [D5CZYZFFY], 2), 2)

   我又在原来的基础上又加了一层round函数,编辑后计算出来的数据变成了2位小数,但是如果小数较多的时候还是提示数据类型错误,是不是把所有输入的数据都加一层round函数才能不出现问题?



杨乐 发表于:2019-09-21 09:42:28

我把原来设置的双精度数据类型改成单精度以后,自己录入的数据变为正常了,但是在保存的时候还是提示“类型错误”不知道哪里出了问题




杨乐 发表于:2019-09-21 10:30:57

用复制新增功能,可以把以前录进去的数据进行保存,但是新增的数据不知道为什么保存不了,一直提示“类型错误”,设置的类型都是正常的“文本、日期、单精数字“



杨乐 发表于:2019-09-23 08:23:06
各位大神帮帮忙,自己试验了很长时间都没有弄好!

总记录:6篇  页次:1/1 9 1 :