Resaltar registros y enviar a tabla

A ver si puedes echarme una mano
Me gustaría que cuando hiciera clic en los botones con nombre:
Eliminar
Nuevo
Los registros evidentemente se eliminaran o se crearan nuevos...
Pero además, que los registros afectados del formulario se sombrearan,
resaltaran con un color y se duplicaran los registros nuevos y se
guardaran los eliminados en dos tablas "NUEVOS" y "ELIMINADOS". O sea
que los registros nuevos se guardarían en la tabla "DATOS" origen del
formulario pero se duplicarían en la tabla "NUEVOS". En cuanto a los
eliminados éstos se borrarían de la tabla "Datos" y se guardarían en
"eliminados"
En cuanto al resaltado de color:
Si pulso botón "NUEVO" los datos afectados se deberían sombrear en gris
y si no es posible resaltar con color mediante vba entonces ponerle
como color de fuente el gris
SI pulso botón "ELIMINAR " los datos afectados se deberían sombrear en
rojo y si no es posible ponerles como color de fuente el rojo.

El sentido de todo esto es saber mediante un código visual de colores,
al navegar en mi formulario por los registros, cuáles se han eliminado
o cuáles se han insertado como nuevos datos...
Y las tablas "NUEVOS" y "ELIMINADOS" serían como un histórico donde
guardarlos
Anoto los detalles.
Formulario: "detalles-ficha"
TABLA: "DATOS" con campos: "IdRegistro";"titulo";"director";"genero"
TABLA: "ELIMINADOS" con campos: "IdRegistro";"titulo";"director";"genero" TABLA:"NUEVOS" con campos: "IdRegistro"; "titulo"; "director"; "genero"

1 respuesta

Respuesta
1

Vamos a ver...

Si tuviera que contestar a tu pregunta te diría que lo que pides no se puede hacer.

Si me tuviera que implicar un poco más en la respuesta te diría: ¿Por qué te complicas tanto la vida? Access tiene suficientes elementos que, sin programación, te podrían hacer lo que estás pidiendo. Conclusión: necesitas replantearte tu sistemática. De hecho, ni siquiera necesitas los botones nuevo y eliminado.

Y si ya te tuviera que dar una explicación (je, je...) te diría lo siguiente:

a) No se puede hacer porque, si coges un registro de una tabla y lo eliminas, ¿cómo quieres que después te lo muestre (sea en colorines o sea en blanco y negro)? Una vez eliminado "no está", y si no está no puede mostrarse. He ahí el motivo de porque lo que pides es imposible.

b) Si la idea es guardar, al fin y al cabo, los datos, ¿para qué necesitas duplicar datos en otras tablas? Eso redunda en detrimento del tamaño de la base de datos, lo cual no es bueno.

c) Dicho lo anterior te indico qué es lo que puedes hacer:

1.- Abres tu tabla en vista diseño y le añades dos campos:

[Nuevo] -> De tipo Sí/No -> Valor predeterminado 0 (cero)

[Eliminado] -> De tipo Sí/No -> Valor predeterminado 0 (cero)

2.- Creas un formulario sobre la tabla Datos. Entiendo que para lo que necesitas lo mejor sería crearlo en vista de formularios continuos.

3.- Exceptuando estos dos últimos que has creado, te sitúas en el primer campo [IdRegistro] y le aplicas formato condicional, de manera que:

Primera condición: Si la expresión es: [Nuevo]=True -> Y seleccionas el color de fondo que quieras

Segunda condición: Si la expresión es: [Eliminado]=True -> Y seleccionas el color de fondo que quieras.

4.- Deberías repetir el mismo proceso con el resto de campos.

Y este punto ya está: marcas el check de nuevo, te cambia el color; marcas el check de eliminado, te cambia el color. Fácil.

Operaciones posibles:

1) Quieres ver todos los registros, con los eliminados de un color y los nuevos de otro: abres el formulario en el cual has aplicado formato condicional

2) Quieres ver sólo los nuevos: te creas una consulta sobre la tabla Datos y, en el campo [Nuevo], estableces un filtro, de manera que en la línea "Criterio:" escribes TRUE

Si lo quieres más bonito te creas un formulario o informe sobre esa consulta

3) Quieres ver sólo los eliminados: te creas una consulta sobre la tabla Datos y, en el campo [Eliminado], estableces un filtro, de manera que en la línea "Criterio:" escribes TRUE

4) Quieres ver todos menos los nuevos y eliminados: te creas una consulta sobre la tabla Datos y, en el campo [Eliminado], estableces un filtro, de manera que en la línea "Criterio:" escribes FALSE, y en el campo [Nuevo] estableces un filtro, de manera que en la línea "Criterio:" escribes FALSE

Operaciones a futuro:

1) Quieres definitivamente eliminar los eliminados de la tabla Datos, pero guardándolos en la tabla Eliminados: para ello basta

1.- Creas la tabla Eliminados

2.- Creas una consulta de selección que te muestre sólo los eliminados. Conviertes esa consulta de selección en una consulta de datos anexados y los anexas a la tabla Eliminados. Cuando la ejecutes te guardará los registros en esta tabla

3.- Una vez hecho lo anterior, conviertes esa misma consulta en una consulta de eliminación de datos. Cuando la ejecutes te eliminará los registros de la tabla Datos

2) Quieres guardar los datos nuevos en la tabla Nuevos:

Pues ejecutas los puntos 1 y 2 del apartado anterior, sólo que filtrando por Nuevos y anexando a la tabla Nuevos.

En fin... creo que no me dejo nada.

Sí, la verdad es que me equivoqué en el enunciado de resaltar registros eliminados y enviarlos a tabla "eliminados", puesto como bien dices si están eliminados no se pueden resaltar... Más bien lo que quería era inactivar ciertos registros, deshabilitarlos como vi en un ejemplo tuyo de formularios, de cambiar la contraseña el propio usuario. Ahí tenías un botón de cambiar contraseña, deshabilitado, inactivo y creo que es eso lo que quiero hacer con ciertos registros antiguos, deshabilitarlos si se puede, con lo cual estarían pero inactivos de alguna manera. Por supuesto lo de resaltar eliminados es en sí una incongruencia, perdona, más aún una paradoja je je. Debes entender que cuando vi que estabas disponible me entró la ansiedad  porque eres de los mejores expertos en access aquí y como no se te pregunte rápido, viene otro compañero como yo y te bombardea a preguntas. No duras mucho disponible, creo que estás muy solicitado. Así que me puse un poco nervioso al y formulé mal la pregunta. A ver si en otra te puedo preguntar sobre deshabilitar registros...

En todo caso tu respuesta me ha servido de mucho.

Muchas gracias por ayudarme

Pd:por cierto los ejemplos de tu web los estoy practicando y son muy útiles

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas