根据MSDN,在VBA中将数字转换为十进制的语法是
CDec(expression)
我经常在访问SQL中使用转换功能。例如Clng,Cint等......
然而,当我使用CDec时,我有时会收到此错误
Compile error:Wrong number of arguments or invalid property assignment
考虑:
在即时窗口中
? cdec(round(0.00023,4))
0.0002
? CDec(Round(0.12345678+0.00000001,6))
0.123457
? CDec(Round(0.12345679,6))
0.123457
? CDec(Round(0.12345679,6),10)
This gives the above error (ie as expected as no parameter is allowed)
在SQL查询列中
CDec(Round(0.12345678,6))
This gives the above error.
CDec(Round(0.12345678,6),2)
This WORKS and give the answer 0. What does the parameter do!?
CDec(Round(0.12345678,6),2,1)
This gives the above error.
我想当从访问SQL调用函数时,它使用的代码与VBA使用的代码不同。但是,我被困住了,不明白。
帮助!
我正在使用MS Access 2013:Build:15.0.4727.1003 32bit
哈维
答案 0 :(得分:3)
Error message when you use the CDec() function in an Access query
建议的解决方法是将CDec包装在自定义函数中:
Function NewCDec(MyVal)
NewCDec = CDec(MyVal)
End Function