Access - Modificar base desde formulario

 
Vista:

Modificar base desde formulario

Publicado por Juan (5 intervenciones) el 27/09/2007 16:57:08
Hola. Me gustaria saber como tengo que hacer para introducir cambios en una base a traves de ver los registros en un formulario. El tema es que para registrar los cambios quiero que la persona tenga que hacer click en un boton. Si hace algun cambio en un campo del formulario pero despues se arrepiente y no quiere cargar el cambio, entonces el cambio ese no deberia representarse en la base.
No se si cambia en algo al problema pero el formulario en el cual se hagan los cambios sera un formulario con registros de la base previamente filtrados.
Muchas gracias!
Juan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Realizar y confirmar cambios en un formulario

Publicado por Alejandro (4142 intervenciones) el 21/08/2023 22:16:56
Puedes lograr lo que mencionas utilizando un enfoque donde los cambios se realicen en un formulario y se confirmen antes de actualizar la base de datos. Aquí tienes los pasos para hacerlo:

1. Diseñar el formulario de edición:
- Crea un formulario donde se muestren los registros filtrados que deseas editar.
- Agrega los controles necesarios para que el usuario pueda realizar cambios en los campos.
- Añade un botón de "Guardar Cambios" y otro de "Cancelar".

2. Configurar los controles para cambios:
- En cada control de campo que pueda ser editado, configura la propiedad "Valor antiguo" con el valor actual del campo.

3. Botón de "Guardar Cambios":
- Crea un evento en el botón de "Guardar Cambios" que recorra todos los controles y compare los valores nuevos con los valores antiguos.
- Si los valores son diferentes, muestra un mensaje de confirmación al usuario para que confirme si desea guardar los cambios.
- Si el usuario confirma, actualiza los valores en la base de datos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub btnGuardarCambios_Click()
    Dim ctl As Control
    Dim strSQL As String
 
    For Each ctl In Me.Controls
        If ctl.ControlType = acTextBox Then
            If ctl.Value <> ctl.OldValue Then
                If MsgBox("¿Desea guardar los cambios?", vbYesNo + vbQuestion, "Confirmar Cambios") = vbYes Then
                    strSQL = "UPDATE TuTabla SET " & ctl.ControlSource & " = '" & ctl.Value & "' WHERE ID = " & Me.ID
                    CurrentDb.Execute strSQL
                End If
            End If
        End If
    Next ctl
End Sub

4. Botón de "Cancelar":
- El botón de "Cancelar" puede simplemente cerrar el formulario sin realizar cambios.

Con este enfoque, los cambios solo se guardarán en la base de datos si el usuario confirma que desea hacerlo. Si el usuario decide cancelar, los cambios no se reflejarán en la base de datos y los valores antiguos se mantendrán.

Ten en cuenta que este es un enfoque básico y deberás adaptarlo a tus necesidades específicas. Además, se asume que estás utilizando un campo llamado "ID" para identificar los registros en la base de datos. Asegúrate de ajustar el código según la estructura de tu base de datos y el diseño del formulario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar