UPDATE语句中的语法错误:从String到Double的值

问题描述 投票:0回答:1

我使用以下VBA代码更新我的数据库中的Double字段。该字段的名称是week,要放置的值的名称是valore。在我的VBA中,他们都是String变量。

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

valore是带小数的数字(例如“2.5”或“2,5”)时,我收到以下错误:

UPDATE语句中的语法错误

CurrentDb.Execute "UPDATE [Pianificazione risorse] " _
 & "SET " & week & " = " & CDbl(valore) & " " _
 & "WHERE [Codice Progetto] = '" & xCodice_Progetto & "' AND Risorsa = '" & xRisorsa & "';"
access-vba
1个回答
2
投票

本土化。

在即时窗口中尝试这个:

? CDbl(1.5)
 1,5 

? CDbl(1,5)
*compile error*

运行意大利语版本的Access时,CDbl结果在转换为字符串时会生成小数点逗号。但是Access SQL总是期望浮点数的小数点(美国格式)。

您应该使用参数而不是连接字符串: How do I use parameters in VBA in the different contexts in Microsoft Access?

如果你真的必须,在使用SQL连接变量时使用Gustav的CSql() function

... & CSql(CDbl(valore)) & ...
© www.soinside.com 2019 - 2024. All rights reserved.