Botón para eliminar, desactivar o colorear registros

Siempre tengo esta duda con los registros, los libros que ya no tengo en mi biblioteca.

Nunca sé qué es preferible si eliminar totalmente los registros de libros que ya no pertenecen a mi biblioteca, a la base de datos, o si es mejor crear un comando de opciones y marcarlo o no en función de si está activo el registro o si se ha dado de baja.

Por un lado considero que tener un registro que nunca voy a usar no tiene sentido y sería mejor eliminarlo totalmente de mi base de datos, pero no sé qué es preferible.

Otra posibilidad que me planteo es colorear el registro en rojo si lo he eliminado y así mantenerlo en la BD pero sabiendo gracias al color que está dado de baja.

Ya me comentáis qué es mejor y si podéis ponerme indicarme el código para ejecutar el botón correspondiente os lo agradecería.

2 respuestas

Respuesta
1

Depro: Creo que dentro de las soluciones que yo veo, la que adoptaría si el Número de Registros de Libroa no es muy grande, por ejemplo 50.000, es la de mantenerlos y solo mostrarlos, con un Filtro o como dices coloreados. Tambiés se podrían filtrar en informes.

Para ello la Tabla Principal debe tener un Campo tipo Si/No, que se llame por ejemplo ExisteLibro, de modo que marcado sería Si, y desmarcado sería No.

Es evidente que eso llevará un trabajo de marcar los que están y después unas líneas de Código para filtrar en el Formulario donde los vayas a Mostrar.

En éste enlace tengo un Ejemplo de mostrar registros según la Selección.

Es posible que te valga como punto de Partida.

http://www.mediafire.com/download/l40vwcxqgzdheb7/SoloUnosRegistros.rar 

Mis saludos >> Jacinto

Hola Jacinto

Creo que lo mejor como bien dices es mantener los eliminados.

He estado mirando el ejemplo que me indicas pero no tengo claro algunas cosas... ¿en el botón "BtnQuitaFiltros" lo de me.chkLlamdo.value = 0, entiendo que "0" es sí y valor "1" sería no?

He creado ya en la tabla "Libros" el campo "ExisteLibro" de tipo Si/no pero podrías indicarme en el formulario "FLibros", asociado a la tabla, qué líneas de código habría que insertar para mantenerlos y solo mostrarlos con un filtro?

¿Y si no es mucho pedir para tener una segunda alternativa si quisiera colorearlos cómo sería, creo un botón que al pulsarlo coloree el registro entero? Si me puedes indicar cómo lo harías exactamente y el código te lo agradecería porque ando un poco perdido.

Un saludo y gracias por la ayuda

Depro: Esto se llama un 2x1, y aunque no es demasiado extenso para explicar, te he preparado un ejemplo que hace referencia a Pedidos Servidos, No servidos y Todos, para que veas la metodología.

Los colores están en el Formato Condicional y puedes darles el Formato que tu prefieras en el Fondo y Fuente

http://www.mediafire.com/download/dlpf47z11yjh5pb/RegistrosSiNoTodos.rar 

Ante dudas me comentas. Saludos >> Jacinto

Respuesta
1

Totalmente de acuerdo con Jacinto, la mejor opción, si quieres mantenerlos en la BD, es añadir a la tabla un campo Si/No, en el que dependiendo de cómo lo llames, marcarás los existentes o los borrados.

Otra opción que tienes, que particularmente no me gusta, es moverlos a otra tabla, por ejemplo tblHistoricoLibros, con la misma estructura que tblLibros.

La primera opción te implica modificar los formularios para mostrar sólo los existentes, por medio de un filtro, o colorear los no existentes, por ejemplo con formatos condicionales. La segunda te evita ese trabajo, pues los no existentes ya están en otra tabla.

En cuanto a qué es mejor si borrarlos o mantenerlos, dependerá del uso que le des. Si estimas que los libros que des de baja se repongan, es mejor que conserves los registros para evitar tener que volver a meterlos. En ambas opciones es fácil de hacer, o marcas/desmarcas el campo si/no, o usas una consulta de datos anexados, por ejemplo. Lo mismo si te interesa mantener un registro de todos los libros que tuviste en la biblioteca.

Si no es el caso, puedes borrarlos sin problema.

Un saludo.

Un saludo.


Un nuevo foro de Access, no dudes en pasarte: http://nksvaccessolutions.com/Foro/ 

Hola Sveinbjorn

Sí, prefiero la primera opción que me indicas... creo que es mejor conservar los registros y añadir a la tabla de "Libros" un campo si/no para indicar si existe el libro o no.

Pero entonces cómo sería la dinámica del formulario...

¿Al abrir el formulario vería todos los registros entiendo, incluso los no activos y luego apretaría un botón de filtrado para ver sólo los activos?

Respecto a lo de modificar los formularios para mostrar sólo los existentes, por medio de un filtro, podrías indicarme exáctamente el código, porque no lo tengo muy claro.

Gracias por la ayuda

No te hace falta código, si sacas las propiedades de los formularios, en la pestaña datos tienes una propiedad "Filtro", en ella pondrías el filtro, por ejemplo Eliminado=Falso y en la siguiente propiedad "Filtrar al cargar", le pones Sí.

Con eso simplemente ya te cargará en el formulario los registros que cumplan esa condición.

Hola Sveinbjorn

Me he metido como me indicas, en la pestaña "Datos", de propiedades del formulario y solo me aparece la propiedad "Filtro" donde he puesto Eliminado = Falso pero no me aparece la propiedad "Filtrar al cargar". Estoy usando access 2003 y creo que esa propiedad aparece a partir del 2007...

¿Entonces qué debería hacer para usar "filtrar al cargar"?

supongo que debería ir al evento "al cargar" del formulario y poner FilterOn = true...

Bueno ya me comentas

Pues como access 2003 ya hace mucho que no lo tengo, no te sabría decir. Imagino que lo que comentas funcionará, pero la mejor forma de saberlo es que lo pruebes tú mismo...

Si no, le cambias el origen al formulario, y en vez de ponerle el nombre de la tabla le pones:

SELECT * FROM TuTabla WHERE Eliminado=False

Y listo!

Ok

Gracias por la ayuda.

De todas formas creo que voy a  pasar toda mi base de datos a access 2010 que también lo tengo instalado en el ordenador y así poder actualizarme con las nuevas herrramientas.

Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas