Crear tabla de Auditoria

Tengo 3 inquietudes y son las siguientes:

Primero: Una tabla de auditoria en una base de datos, sirve para todas las tablas, o se debe crear una tabla de auditoria para cada tabla.
Ejemplo: tengo las tablas Usuarios, movimientos, etc. Lo que haga en esas tablas (modificaciones, inserciones o eliminaciones) se pueden guardar en la tabla auditoria, ¿o se debe crear como te pregunto una tabla de auditoria para usuarios y otra para movimientos?

Segundo: Como hago para que en la tabla auditoria me queden registrado los movimientos que hago en cualquiera de las dos tablas, específicamente lo siguiente: si es un nuevo movimiento que en un campo llamado estado por ejemplo me coloque "inserción", si es una modificación, que me coloque en el campo estado "actualización", y que si se elimina el registro me coloque en el campo estado "eliminado"

Tercero: He creado un formulario en vista o forma tabular (es decir se pueden ver varios registros en pantalla), lo que quiero hacer es como bloquear o deshabilitar los registros que voy ingresando para que no se puedan modificar.
Te cuento lo que he intentado hacer con este punto. Al momento de cargar el formulario he bloqueado los campos, puse un botón llamado "crear nuevo registro", al dar click sobre el botón, deshabilito los campos para ingresar la información, pero resulta que se deshabilita todo, y no es lo que quiero, lo que pretendo es que se deshabilite solo los campos para el nuevo registro.

1 respuesta

Respuesta
1

Primero

En la misma tabla puedes llevar ambos controles, creando un campo eje BYTE en donde 1=Tabla Usuarios 2= Tabla Movimientos. Debes tener una tabla en donde codifiques las novedades, es decir, 1=Inserc, 2= Elimi etc Supongo que usas Dirty, NewRecord etc

Segundo

Con base en la tabla que te sugiero tomas el código con una consulta, si no creas la tabla debes tener claro que es 1 y que es 2 etc. Utiliza Dirty y NewRecord etc para determinar la novedad Ej.

IF me.NewRecord then}

'Agregar novedad a la tabla Auditoría, puedes hacerlo mediante SQL con INSERT TO

Elseif me. Dirty then

'...

End If

Terecero

Configura el bloqueo por registros del Formulario, Registro Activo, Registro Modi etc

Buena noche experto.

Gracias por la información referente a auditoria.

Quisiera pedirle el favor de que me ayudara con el tercer punto, siendo un poco mas específico, la verdad no acabo de comprender como se haría este procedimiento, esto en razón a que como le comenté el formulario es de forma tabular, y en modo diseño solo se ve una fila con los campos, y en modo ejecución se ven varias filas.

Y discúlpeme por preguntar quizá mas de la cuenta, pero tengo otra inquietud, en un formulario quiero adicionar 4 cuadros de texto independientes, a los cuales les quiero asignar un valor numérico, con el fin de que estos valores siempre estén presentes en cualquier registro ya que con ellos se harán algunos cálculos, he intentado agregar dichos valores a los campos en la propiedad origen de control de cada uno de ellos de la siguiente manera; =10; =7; =2; =2, (estos son los valores de los 4 campos independientes), pero resulta que cuando cargo el formulario por primera vez, efectivamente me aparecen los datos, pero cuando salgo de el y después vuelvo a cargar el form, ya no aparecen los datos. Creo que esto no es lo indicado de hacer, ya que en algún momento quizá tenga que cambiar algún valor de estos campos independientes.

Muchas gracias nuevamente

Buenas noches y saludos

Por ahora te respondo la última parte, no debes asignar con Origen del Control, en su lugar mira Valor Predeterminado 10 y así para cada campo.

Respecto al primer punto se puede utilizar Bookmark para detectar la posición del registro. Busca en ayuda de Access Cómo: Marcar una posición en un conjunto de registros de DAO. Aquí encuentras 2 ejemplos, fíjate mucho en la explicación de este código rstCustomers.Bookmark = rstCustomers. LastModified.

Nuevamente.

Buena tarde experto,

Agradezco la atención y pronta respuesta a mis inquietudes.

Quisiera pedirle el favor de lo siguiente: Efectivamente al poner en valor predeterminado el dato que necesito, funciona perfectamente, pero tengo un problema, en cualquier momento requiero cambiar el dato del campo, por ejemplo de 10 a 9, y resulta que esto no es posible desde el form, hay que abrir las propiedades del campo y cambiar el valor. Este cambio debe ser transparente para el usuario final, osea desde el form. Como se puede hacer esto sin tener que ir a las propiedades del campo

Si es posible mediante código se pueden cambiar las propiedades del formulario, por ejemplo,

Puedes obtener el valor a cambiar desde otro campo, puede ser un combo box que contenga los valores de 1 a 10 o los que requieras, y colocas el evento Después de actualizar algo como: Aquí ctl0 es el nombre del campo que cambia.

Dim intValue as Integer

Me.ctl0.DefaultValue=intValue

Muchas gracias por su valiosa ayuda. Su generosidad al brindarnos sus conocimientos hacen que personas que no lo tenemos, podamos aprender nuevas cosas

Saludos desde colombia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas