Access - Log en access con NetUser

 
Vista:

Log en access con NetUser

Publicado por Claw82 (21 intervenciones) el 19/10/2006 11:17:40
Wenass, a ver si alguien me puede ayudar con una duda q tengo, me gustaria q con access 2003, poder crear un log donde keden registradas todas las modificaciones d una cierta tabla o formulario, y q en este log se guardara el usuario q hace la modificacion con la función NetUser(), el campo q se modifica, y la hora y fecha en la q se modificaron.

Saludos y gracias
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

Creación de un registro de cambios (log) con información de usuario, campo y fecha/hora de modificac

Publicado por Alejandro (4142 intervenciones) el 27/07/2023 16:19:20
Para crear un registro de cambios que registre todas las modificaciones realizadas en una tabla o formulario en Microsoft Access 2003, puedes seguir estos pasos:

Paso 1: Crear una tabla de registro de cambios
1. Abre tu base de datos en Access y ve a la pestaña "Tablas" en el panel de navegación.
2. Haz clic en "Nueva" y selecciona "Tabla en blanco" para crear una nueva tabla.
3. Agrega los siguientes campos a la tabla:
- ID (tipo: Autonumérico, clave principal)
- Usuario (tipo: Texto)
- TablaFormulario (tipo: Texto)
- CampoModificado (tipo: Texto)
- ValorAntiguo (tipo: Texto)
- ValorNuevo (tipo: Texto)
- FechaHoraModificacion (tipo: Fecha/Hora)
4. Guarda la tabla con un nombre descriptivo, como "RegistroCambios".

Paso 2: Crear un módulo para registrar las modificaciones
1. Ve a la pestaña "Módulos" en el panel de navegación.
2. Haz clic en "Nuevo" y selecciona "Módulo" para crear un nuevo módulo.
3. En el editor de código VBA, escribe la siguiente función para registrar los cambios:

1
2
3
4
5
6
Function RegistrarCambio(TablaFormulario As String, CampoModificado As String, ValorAntiguo As String, ValorNuevo As String)
    Dim strSQL As String
    strSQL = "INSERT INTO RegistroCambios (Usuario, TablaFormulario, CampoModificado, ValorAntiguo, ValorNuevo, FechaHoraModificacion) " & _
             "VALUES ('" & Environ("USERNAME") & "', '" & TablaFormulario & "', '" & CampoModificado & "', '" & ValorAntiguo & "', '" & ValorNuevo & "', Now())"
    CurrentDb.Execute strSQL
End Function

4. Cierra y guarda el módulo con un nombre descriptivo, como "ModuloRegistroCambios".

Paso 3: Agregar el código para registrar los cambios en los eventos de la tabla o formulario
1. Abre la tabla o formulario del cual deseas registrar los cambios en modo diseño.
2. Haz clic derecho sobre el objeto y selecciona "Propiedades" para abrir las propiedades del objeto.
3. Ve a la pestaña "Eventos" en las propiedades.
4. Busca el evento "Después de actualizar" y haz clic en el botón de elipsis (tres puntos) al lado.
5. Se abrirá el editor de código VBA. Agrega el siguiente código al evento "Después de actualizar":

1
2
3
4
5
6
7
8
9
10
Private Sub Form_AfterUpdate()
    Dim Campo As Control
    For Each Campo In Me.Controls
        If Campo.ControlType = acTextBox Or Campo.ControlType = acComboBox Or Campo.ControlType = acCheckBox Then
            If Campo.OldValue <> Campo.Value Then
                RegistrarCambio Me.Name, Campo.Name, Campo.OldValue, Campo.Value
            End If
        End If
    Next Campo
End Sub

Paso 4: Guardar y probar la solución
1. Guarda los cambios en el formulario o tabla y cierra el editor de código VBA.
2. Ahora, cuando se realicen modificaciones en los campos del formulario o tabla, se registrarán automáticamente en la tabla "RegistroCambios" con la información del usuario, campo modificado, valor antiguo y valor nuevo, junto con la fecha y hora de modificación.

Recuerda que esta solución está diseñada para Access 2003. Si estás utilizando una versión más reciente de Access, es posible que encuentres diferencias en la interfaz y la ubicación de las opciones, pero el concepto general sigue siendo el mismo.

Espero que esta solución te sea útil para crear un registro de cambios en tu base de datos. ¡Saludos!
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