首页 > 解决方案 > 为什么我从访问表单中的标签中得到类型不匹配?

问题描述

我从格式为百分比 (0.00%) 的标签中获取值。

因此,我将它转换为双精度CDBL(label.caption),然后出现类型不匹配错误....查看我的代码:

Forms(frmName).Label80.Caption = format(CDbl(Forms(frmName).Label123.Caption) + CDbl(Forms(frmName).Label162.Caption), "Percent")

原来: label12310.00%的价值和0.00%label162的价值

所以如果我这样做cdbl(label123),它会给我 10(好!)

如果我这样做cdbl(label162)会产生错误

如果我这样做val(label162)会产生错误

我在想它与0有关?我似乎无法弄清楚这个...

标签: ms-access

解决方案


您还可以使用该Format函数解析百分比,并返回一个包含通用数字格式的等效值的字符串,以便使用该CDbl函数成功转换,例如:

Forms(frmName).Label80.Caption = Format(CDbl(Format(Forms(frmName).Label123.Caption, "General Number")) + CDbl(Format(Forms(frmName).Label162.Caption, "General Number")), "Percent")

这种方法的优点是Format函数识别字符串表示百分比,因此自动处理除以 100:

?Format("10.48%", "General Number")
0.1048

的使用CDbl还允许十进制数字表示的区域差异(例如,使用逗号代替句点) - 感谢@Gustav 指出这一点。


推荐阅读