Ayuda otra vez en access

Hola soy yo el del código de insertar y actualizar registros, solo que me quede con una duda haber si tu me podrías ayudar:
Tu código sirvió de maravilla, solo que tengo una duda ya que cuando presiono el botón del formulario me aparece una ventana que dice que "estas a punto de actualizar un registro", el problema no es que me aparezca esto sino que cuando tengo 2 o productos a actualizar me aparecen 2 o más de estas ventanitas, ¿no hay forma de que me apareciera una sola? Como por ejemplo si son 3 productos que diga: "estas a punto de actualizar 3 registros"
Gracias espero tu ayuda
Te dejo el código que me pasaste pero un poco corregido por mi para que me funcionara:
Dim misRegistros As Recordset
Dim miSQL As String, miSQL1 As String
Dim miCantidad, miIdProducto
Set misRegistros = Me.SunProductos.Form.RecordsetClone
With misRegistros
.MoveLast
.MoveFirst
Do Until .EOF
miCantidad = !cantidad
miIdProducto = !idproducto
miSQL = "UPDATE tbproducto SET tbproducto.cantidad = tbproducto.cantidad - " & miCantidad & " WHERE tbproducto.idproducto = " & miIdProducto & ""
DoCmd.RunSQL miSQL, False
.MoveNext
Loop
.Close
End With

1 respuesta

Respuesta
1
Para evitar un aviso en cada consulta de actualización de datos podemos incluir una linea que desactive los mensajes, y otra al final que los vuelva a dejar activos, ya que sino permanecerán inactivos hasta que reinicies la aplicación.
Para presentar un aviso inicial basta con calcular el número de registros que se van a ver afectos y presentar el aviso en un cuadro de mensaje. Te copio al código con los cambios.
Cordiales saludos.
Dim misRegistros As Recordset
Dim miSQL As String, miSQL1 As String
Dim miCantidad, miIdProducto
Dim msg as string, estilo, title as string, cuantosRegistros as integer, miRespuesta
Set misRegistros = Me.SunProductos.Form.RecordsetClone
With misRegistros
.MoveLast
.MoveFirst
cuantosRegistros = .Recordcount
msg = "Existen " & cuantosRegistros & " registros seleccionados."
msg = msg & vbcrlf & vblf & "Presione 'Aceptar' si desea actualizarlos."
msg = msg & vbcrlf & vblf & "Presione 'Cancelar' si NO desea actualizarlos."
estilo = vbokcancel + vbdefaultbutton1 + vbquestion
title = "Actualización de registros"
miRespuesta = MsgBox (msg, estilo, title)
If miRespuesta = vbcancel then
.close
Exit Sub
else
docmd.SetWarnings False
Do Until .EOF
miCantidad = !cantidad
miIdProducto = !idproducto
miSQL = "UPDATE tbproducto SET tbproducto.cantidad = tbproducto.cantidad - " & miCantidad & " WHERE tbproducto.idproducto = " & miIdProducto & ""
DoCmd.RunSQL miSQL, False
.MoveNext
Loop
.Close
docmd.SetWarnings True
End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas