Access交流中心

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

从窗体录入数据的问题

初学者  发表于:2018-12-30 17:44:12  
复制

我通过窗体录入数据,录入确定后,将文本录入值经过val()转换为数字,其转换的结果部分正确,部分转换为“0”,不知什么原因,望老师帮忙指导解决。谢谢!!点击下载此附件

 

Top
伊西军 发表于:2019-01-02 13:52:34
计算结果的字段 这里不应该定义为integer 应该定义为Double

初学者 发表于:2019-01-03 22:29:05
都是定义为integer,但有的经val()转化,结果正确,有的出现问题?不明白......

leoyoung 发表于:2019-01-04 12:54:57
Dim gpcz, ntrzbhbl, ngbzzl As Integer
Dim nmgsyzzl, nyysrzl As Integer

Dim aa, nzyxjzzl, kcns, kcnd As Integer


定义变量可以使用显式或隐式两种方式定义: 
1、显式定义:Dim 变量名 As 类型 
2、隐式定义:使用类型说明符 
类型说明符如下: 
%——整型 
&——长整型 
!——单精度浮点数 
#——双精度浮点数 
@——货币型 
$——字符串型 

每个变量后面都要as,否则默认为variant(变体)变量。

本例除了粗体为Integer类型,其他的定义均为variant类型。

应根据1楼伊老师的建议,定义为Double。




西出阳关无故人 发表于:2019-01-04 15:00:36

问题出在变量的定义上

 Dim gpcz, ntrzbhbl, ngbzzl As Integer

这里只有最后一个变量ngbzzl 被明确为Integer数据类型,而gpcz和ntrzbhbl只是申明了变量,并没有明确变量的数据类型。

当变量明确为Integer数据类型后,你用一个小数传递给变量,则变量会自动按照四舍五入取整的方法保存数值。注意:他的四舍五入取整与我们的不同,只有x>0.5才入,<=0.5就舍。

当变量未明确数据类型,你把一个小数传递给变量,则变量会按照传入的数值进行保存。所以,你看到的是其转换的结果部分正确,部分转换为“0”

所以,你要全部申明变量为Integer或其他数据类型,就按照下列两种方式即可:

Dim gpcz As Integer, ntrzbhbl As Integer, ngbzzl As Integer

Dim gpcz As Integer

Dim  ntrzbhbl As Integer

Dim  ngbzzl As Integer



初学者 发表于:2019-01-04 22:30:37
明白了,谢谢老师指导!!

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