Access - editar registros haciendo un historico

 
Vista:

editar registros haciendo un historico

Publicado por alejandro (49 intervenciones) el 02/11/2005 12:45:47
tengo que hacer en el trabajo un formulario en el que a partir de un boton o de algun modo se puedan editar los registros de una tabla. me han pedido que haga un historico y que se modifique luego sobre el solo la parte cambiada.

no tengo ni idea de hacerlo y segun lo que entiendo es hacer una especie de copia de la tabla donde se introducen los datos cambiados de un registro y luego se comparen las tablas y se quede solo lo modificado y lo antiguo igual para que no ocupe mucho la base de datos. una especie de imagen temporal.

AYUDADME QUE LO NECESITO PARA MAÑANA, MUCHAS GRACIAS POR ADELANTADO.

1 saludo ALEJANDRO

mi direcc es [email protected] por si podeis agregarme al messenger esta tarde/noche y os lo explico mejor.
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

Crear formulario con historial de cambios en registros de tabla

Publicado por Alejandro (4142 intervenciones) el 13/06/2023 22:45:31
Hola, tocayo.

Para crear un formulario en Access que permita editar registros de una tabla y mantener un historial de cambios, puedes seguir estos pasos:

1. Crea un formulario basado en la tabla que deseas editar. Puedes utilizar el asistente de formularios para facilitar este proceso.
2. Agrega un botón al formulario para guardar los cambios. Puedes utilizar el control "Botón de comando" para esto.
3. En el evento "Al hacer clic" del botón de guardar, puedes agregar el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub btnGuardar_Click()
    Dim rs As DAO.Recordset
    Dim rsHistorico As DAO.Recordset
    Dim campo As DAO.Field
 
    Set rs = Me.RecordsetClone
    Set rsHistorico = CurrentDb.OpenRecordset("NombreTablaHistorico")
 
    If Not rs.BOF And Not rs.EOF Then
        rs.MoveFirst
        Do Until rs.EOF
            rsHistorico.AddNew
            For Each campo In rs.Fields
                If campo.Value <> campo.Value Then
                    rsHistorico.Fields(campo.Name).Value = campo.Value
                End If
            Next campo
            rsHistorico.Update
            rs.MoveNext
        Loop
    End If
 
    rsHistorico.Close
    rs.Close
    Set rsHistorico = Nothing
    Set rs = Nothing
 
    Me.Requery
End Sub

Asegúrate de reemplazar "NombreTablaHistorico" con el nombre de la tabla que usarás para almacenar el historial de cambios.

Este código crea un nuevo registro en la tabla de historial para cada cambio realizado en los campos del formulario. Solo se copian los valores que se han modificado en relación con los valores existentes en la tabla original.

4. Guarda el formulario y ejecútalo.

Cuando realices cambios en los campos del formulario y hagas clic en el botón de guardar, se crearán registros en la tabla de historial solo para los campos modificados.

Recuerda adaptar este código a tu estructura de base de datos y a los nombres de los campos y tablas específicos que estés utilizando.

Espero que esta solución te sea útil. ¡Buena suerte con tu trabajo!
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