Como evitar que se guarde un registro al seleccionar otro registro en un cuadro de lista

Tengo un cuadro de lista en el cual me muestra todos los registros de una tabla, y si selecciono un registro me lo muestra en un cuadro de texto para poder editarlo y después de ahí guardarlo, pero si lo selecciono del cuadro de lista y le escribo algo al cambiar a otro registro me lo guarda automáticamente sin yo darle a guardar ¿Cómo puedo solucionar eso'? Que hasta que yo de en guardar lo guarde o que al cambiar pregunte si desea guardar los cambios pero que me siga mostrando todos los registros en mi cuadro de lista

2 Respuestas

Respuesta
1

No sé como tienes construido el formulario, pero si el cuadro de texto de la izquierda es independiente, nunca te lo guardará a menos que se lo ordenes. Por ejemplo, en el evento Después de actualizar del cuadro de lista puedes poner( suponiendo que esa columna de contenedores que muestra sea la columna dependiente)

Ahora modifico el nombre

Y cuando pulso guardar

En este caso en particular he usado la instrucción Update, pero también puedes usar la instrucción Insert.

El código es

Private Sub Comando26_Click()
DoCmd.RunSQL "update clientes set pais='" & Me.Texto24 & "' where pais='" & Me.Lista22 & "'"
End Sub
Private Sub Lista22_AfterUpdate()
Texto24 = Lista22
End Sub
Respuesta
1

Si el formulario es totalmente dependiente puede programar el evento Antes de Actualizar, por ejemplo,

A nivel del formulario

 If Me.Dirty Then
   If MsgBox("Los datos han cambiado" & vbCrLf & " ¿Guarda los cambios?", vbQuestion + vbYesNo + vbDefaultButton2) = vbYes Then
     DoCmd.RunCommand acCmdSaveRecord
   Else
     Me.Undo
     Cancel = True
   End If
 End If
End Sub

Para un solo campo

Private Sub persona_BeforeUpdate(Cancel As Integer)
    If Me.Dirty Then
      If MsgBox("Los datos han cambiado" & vbCrLf & " ¿Guarda los cambios?", vbQuestion + vbYesNo + vbDefaultButton2) = vbYes Then
        DoCmd.RunCommand acCmdSaveRecord
      Else
        Me.Undo
        Cancel = True
      End If
   End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas