Vba UPDATE语句中的语法错误:值从字符串变为双精度

Vba UPDATE语句中的语法错误:值从字符串变为双精度,vba,ms-access,Vba,Ms Access,我正在使用以下VBA代码更新数据库中的双字段。该字段的名称为week,要显示的值的名称为valore。在我的VBA中,它们都是String变量 当valore是一个没有小数的数字(es.“15”)时,我没有问题 当valore是一个带小数的数字(es.“2.5”或“2,5”)时,我得到以下错误: UPDATE语句中的语法错误 本地化 在即时窗口中尝试以下操作: ? CDbl(1.5) 1,5 ? CDbl(1,5) *compile error* 运行意大利版Access时,CDbl结果

我正在使用以下VBA代码更新数据库中的双字段。该字段的名称为
week
,要显示的值的名称为
valore
。在我的VBA中,它们都是
String
变量

valore
是一个没有小数的数字(es.“15”)时,我没有问题

valore
是一个带小数的数字(es.“2.5”或“2,5”)时,我得到以下错误:

UPDATE语句中的语法错误

本地化

在即时窗口中尝试以下操作:

? CDbl(1.5)
 1,5 

? CDbl(1,5)
*compile error*
运行意大利版Access时,
CDbl
结果转换为字符串时,会有一个十进制逗号。但是Access SQL总是希望浮点数使用小数点(美国格式)

您应该使用参数而不是串接字符串:

如果您真的必须这样做,请在将变量与SQL连接时使用Gustav

... & CSql(CDbl(valore)) & ...
本地化

在即时窗口中尝试以下操作:

? CDbl(1.5)
 1,5 

? CDbl(1,5)
*compile error*
运行意大利版Access时,
CDbl
结果转换为字符串时,会有一个十进制逗号。但是Access SQL总是希望浮点数使用小数点(美国格式)

您应该使用参数而不是串接字符串:

如果您真的必须这样做,请在将变量与SQL连接时使用Gustav

... & CSql(CDbl(valore)) & ...