Al actualizar registros en una tabla, no me actualiza el último registro

¿Serían tan amables de ayudare con el siguiente caso?

Partiendo del siguiente código:

Private Sub Form_Close()

Dim StrSQL As String
Dim Resta As Double
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]![Descripción]= '" & Me.[Descripción_Campo] & "'"
CurrentDb.Execute StrSQL

Dim rst As DAO.Recordset
Set rst = Me.Form.RecordsetClone
Do Until rst.EOF
rst.Edit
rst("Actualizar") = True
rst.Update
rst.MoveNext
Loop
rst.Close

End Sub

Se debería realizar la actualización de las cantidades de los registros seleccionados a partir del "código" seleccionado del combobox "Seleccionar_Código", pero no lo hace para el último registro seleccionado.

¿Me ayudan con ello

1 respuesta

Respuesta
1

Inti: Cambia esta línea de código:

Do Until rst.EOF

por ésta otra

Do While Not Rst.EOF

Me cuentas si te resuelve el Problema. Saludos >> Jacinto

Disculpa Inti. Es posible que en una lectura rápida, ya que aquí es un poco tarde haya interpretado mal la pregunta.

¿El Campo que no te Actualiza es el del UPDATE>> Resta o es el del Recordset a True? Saludos >> Jacinto

Hola Jacinto gracias por responder, lo que no me actualiza es la resta del último registro seleccionado.

Gracias Jacinto por tu tiempo.

Inti: En esa construcción, te sobra el & "" después de la Resta y queda:

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]![Descripción]= '" & Me.[Descripción_Campo] & "'"

Ignoro si habrá alguna cosa más dependiendo del tipo de Campos que tengas, y tampoco acabo de ver éste Update en el Evento Form_Close y además quizá la variable Resta, por si acaso pondría:

Resta = Nz(Me.[Existencia_Inicial],0) - Nz(Me.[Material_x_Beneficiario],0)

Pero todo esto son conjeturas porque ignoro tu diseño. Saludos >> Jacinto

Buen día Jacinto, gracias por responder, pruebo lo que me indicaste y te comento.

Jacinto Me genera el siguiente error:

Jacinto eso ya lo corregí, pero ahora me actualiza únicamente el último registro, es decir realiza la resta para el último registro.

Inti: Te había comentado que no veía la utilidad a ese UPDATE en el Form_Close.

En definitiva es lógico que solo te actualice un registro y que sea el último, porque son los datos que el Formulario tiene.

Yo eso lo pondría en el AfterUpdate de>> Material_x_Beneficiario y en el Form_ Current.

En éste último, más o menos así:

If Not Me.NewRecord Then

'Aquí las líneas de StrSQl .... Etc

End If

Veamos si adelantamos algo. Saludos >> Jacinto

Jacinto ahora me genera el siguiente error:

Me parece que es por la cadena del control "Descripción"

Jacinto, Si te adjunto la aplicación, ¿Serías tan amable de ayudarme por favor?

Gracias por tu tiempo Jacinto, al final reorganicé todos los eventos y todo bien.

Saludos,

Inti: Puedes ponerme la Aplicación aquí en un enlace o bien enviármela a [email protected]

Le echo una mirada y te comento. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas