Registrar modificaciones en base de datos

Antes que todo disculpá la molestia por la consulta.

El tema es el siguiente, estoy necesitando modificar algo que respondiste por octubre del 2015 y no le encuentro la vuelta (por supuesto soy aficionado).

Viendo el módulo de la base que le mandaste de ejemplo a David (el que preguntó aquella vez) veo que el módulo MdlComparaCambios toma el nombre para el campo Usuario de la tabla TModificaciones de la Pc

.Fields(1).Value = "MODIFICACIÓN"
.Fields(2).Value = Environ("UserName")
.Fields(3).Value = NomForm
.Fields(4).Value = CStr(CContenidos(2))
.Fields(5).Value = CContenidos.Item(I - 1)
.Fields(6).Value = CContenidos.Item(I)
.Fields(7).Value = CContenidos.Item(J)
.Fields(8).Value = Now

Yo necesito que lo tome del Loged User que está usando la base de datos, ya que varios usan la misma Pc. Cada uno que la usa, la cierra al salir de modo que nadie puede cambiar datos con la misma contraseña (a no ser que se olvide, je).

Y que a la vez el que hizo el último cambio quede registrado en el formulario. Por ejemplo, yo veo quién hizo el último cambio sin necesidad de ver la tabla, si quiero el historial de cambios sí voy a la tabla.

Bueno, si podés ver el tema te lo agradezco ya que quedé trancado en eso.

1 Respuesta

Respuesta
1

Tabaré: Para que te registre el usuario del Login, declara una variable "Publica".

En un Módulo Standard que ya tengas, y fuera de cualquier Funcion o Procedimiento pones>>

Public UsuarioActual As String

En el Formulario de Acceso igualas esta variable al Usuario. En el Evento AfterUpdate del Combo donde elijas el Usuario, o elTextBox. Ejemplo

UsuarioActual = Me.CboUser

Suponiendo que se llama así el Combo donde eliges el Usuario.

Por último, sustituyes esa línea que me has marcado en Negrita por >>

.Fields(2).Value = UsuarioActual

Mis saludos >> Jacinto

¡Gracias! Un fenómeno

Hola, Jacinto, he acomodado las cosas y funciona todo bien excepto que en la tabla TModificaciones, no me guarda la identificación del registro cambiado (Id principal autonumérico) de la tabla,.

Me pone 5100 como IdRegistro en todos los cambios que hago.

No sé si el valor lo toma de aquí  

.Fields(4).Value = CStr(CContenidos(2))

pero no entiendo esta sentencia.

Desde ya muchas gracias.

Ah, con esto termino (a no ser que aparezca algo en el funcionamiento que hasta ahora no noté)

Disculpá Jacinto, por apurado y no leer bien me puse a molestar.

Ya está resuelto, el problema es que me tomaba el índice de tabulación 0 otro campo y no el Id.

Muchas gracias, disculpá la molestia. Un abrazo

Tabaré: No te preocupes. Lo más importante es que lo hayas solucionado.

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas