Error 3144 Update no actualiza un campo que tiene como valor un numero con decimales!

Necesito modificar un campo de tipo double con decimales desde un formulario, el problema es que cuando ingreso un valor sin decimales por ejemplo 5,00 actualiza el dato bien, pero si ingreso un valor con decimales por ejemplo 5,25 aparece el error 3144.

El campo es Valorización=" & Me.ModValorización.Value & "

y la consulta UPDATE:

DoCmd.RunSQL "UPDATE T_Carpeta SET OMD = '" & Me.modOMD.Value & "', Valorización=" & Me.ModValorización.Value & " WHERE Id_Carpeta = " & Me.Id_Carpeta.Value & " ;"

¿Será un problema de sintaxis?

1 respuesta

Respuesta
1

Prueba forzando el dato numérico a formato Doble en la SQL, así:

DoCmd.RunSQL "UPDATE T_Carpeta SET OMD = '" & Me.modOMD.Value &
"', Valorización=" & CDbl(Me.ModValorización.Value) & " WHERE
Id_Carpeta = " & Me.Id_Carpeta.Value & " ;"

Si no te funciona así, puedes hacerlo por medio de un recordset. Si necesitas ayuda, me lo dices y te explico como hacerlo.

Hice lo que me indicaste pero el error persiste, si me ayudas con la explicación del recordset te lo agradecía mucho.

Saludos,

Veamos, en tu código, pones, en vez del DoCmd.RunSQL... lo siguiente:

Dim rst as recordset

Dim miSQL as string

miSQL="SELECT * FROM T_Carpeta WHERE Id_Carpeta = " & Me.Id_Carpeta.Value

Set rst=Currentdb.Openrecordset(miSQL,dbOpenDynaset)

rst.Edit

rst("OMD")=Me.modOMD.Value

rst("Valorización")=Me.ModValorización.Value

rst.Update

rst.Close

Set rst=Nothing

A ver si así. Si te diera error en el set rst..., cambia en miSQL="SELECT * ..." el * por todos los campos de la tabla, separados por comas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas