Evaluar una operación matemática en la instrucción UPDATE

Tengan buen día, partiendo del siguiente código:

Dim StrSQL As String
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido] SET [Tabla_Maestra_de_Material_Recibido_de_Enatrel].[Cantidad] = " & Me.[Existencia_Inicial] - Me.[Material_x_Beneficiario]
StrSQL = StrSQL & " WHERE [Tabla_Maestra_de_Material_Recibido]![Código]= " & Me.[Seleccionar_Código].Column(0) & " AND " & "[Tabla_Maestra_de_Material_Recibido]![Sector]= '" & Me.[Sector_Campo_Sub] & "'" & " AND " & "[Tabla_Maestra_de_Material_Recibido]![Descripción]= '" & Me.[Descripción_Campo] & "'"
CurrentDb. Execute StrSQL

¿Serían tan amables de ayudarme con el error de pocos parámetros? , al igualar el valor del campo "Cantidad" en la tabla "Tabla_Maestra_de_Material_Recibido", con el valor obtenido de la resta de "Existencia_Inicial" - "Material_x_Beneficiario"

1 respuesta

Respuesta
1

Si te da ese error, lo más probable es que alguno de los campos del formulario que llevas a la parte del WHERE no tengan valor, por eso te avisa que falta un parámetro.

Si crees que el error está en la resta, hazla primero en una variable y luego al pasas a la SQL:

Dim resta as Integer  'O Double o el tipo que sea...

resta=Me.[Existencia_Inicial] - Me.[Material_x_Beneficiario]

....

SET [Cantidad] = " & resta & ...

Gracias por responder, lo pruebo y te comento.

Saludos,

¿Serías tan amable de indicarme que operador me falta o sobra por favor?

Dim StrSQL As String
Dim Resta As Double
If Not IsNull(Resta) Then
Resta = Me.[Existencia_Inicial] - Me.[Material_x_Beneficiario]
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido] SET [Tabla_Maestra_de_Material_Recibido].[Cantidad] = '" & Resta & "'"
StrSQL = StrSQL & " WHERE [Tabla_Maestra_de_Material_Recibido]![Código]= " & Me.[Seleccionar_Código].Column(1) & " AND " & "[Tabla_Maestra_de_Material_Recibido]![Sector]= '" & Me.[Sector_Campo_Sub] & "'" & " AND " & "[Tabla_Maestra_de_Material_Recibido]![Descripción]= '" & Me.[Descripción_Campo] & "'"
CurrentDb.Execute StrSQL

Saludos,

Ya corregí el código, queda de esta manera:

Dim StrSQL As String
Dim Resta As Double
If Not IsNull(Resta) Then
Resta = Me.[Existencia_Inicial] - Me.[Material_x_Beneficiario]
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido_de_Enatrel] SET [Tabla_Maestra_de_Material_Recibido_de_Enatrel].[Cantidad] = '" & Resta & "'"
StrSQL = StrSQL & " WHERE [Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Código]= " & Me.[Seleccionar_Código].Column(0) & " AND " & "[Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Sector]= '" & Me.[Sector_Campo_Sub] & "'" & " AND " & "[Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Descripción]= '" & Me.[Descripción_Campo] & "'"
CurrentDb.Execute StrSQL
End If

y el error que me da es este:

¿Me puedes ayudar por favor?

Para qué pones el If IsNull(Resta)? No tiene sentido

¿Comprobaste qué todos los campos que vienen del formulario tienen valor? Cuando te salte el error le das a depurar y colocas el cursor encima de cada uno, a ver si tiene el valor que tenías en el formulario o no...

Si, todos los campos tienen el valor correcto.

Veo que al valor de resta le pones las comillas simples. Eso es un error, porque Resta es un número, no un texto. Al resto no le veo nada raro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas