** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Borrar registro con relaciones a otras tablas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Borrar registro con relaciones a otras tablas

 Responder Responder
Autor
Mensaje
luis45ccs Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Diciembre/2009
Localización: Venezuela
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita luis45ccs Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Borrar registro con relaciones a otras tablas
    Enviado: 03/Octubre/2019 a las 01:54
Hola Amigos, encontre que ya estaba inscrito, pero prácticamente soy nuevo acá.
Trabajo profesionalmente con access, pero tengo un problema que no he podido solucionar correctamente.

Es acerca del tema de los registros que un usuario elimina(Uno o varios). Si estos necesitan sumar algo o algún trabajo en otras tablas, esto se vuelve una locura en access, tanto así que por cada evento delete prefiero recalcular cualquier total de otras tablas (y esto me parece absurdo y lento).

Normalmente, prefiero no almacenar muchos valores (suma o totales) en otras tables, sino que prefiero sumar de nuevo todo, pero realmente lo eficiente es llevar algunos totales en ciertas tablas. Pero borrar un registro es una pesadilla.Confused

El evento delete del formulario se ejecuta una vez por cada registro borrado (sin esperar por la respuesta del usuario, estos registros pasan a un buffer temporal (pero este es el único momento en el que se pueden accesar los datos del registro(s) borrado, y por lo tanto poder hacer las relaciones(sumas, restas) con las demás tablas. Teniendo que reversar todo, en caso de que el usuario decida no borrar 100 datos, jaja. Valla lío.

Si esperamos a la pregunta de "Borrar 100 registros (o uno)" y el usuario contesta que si (borralos), no hay manera de ver los datos. Si el usuario los reversa, pues bien, no hicimos nada aun. 

Así que no hay acceso a los registros, teniendo la decisión definitiva de borrarlos.

Incluso cambiando a una pregunta manual, digamos por cada delete, entonces hay choques por ejemplo si el registro es una linea de albarrán y actualizas el total del producto, aunque este en otra tabla (obviamente) aun así, debido a que esta linea tiene algunas uniones (relaciones) con el producto y que en este momento access puede hacer no se que cosa con el registro del producto (tal vez actualizaciones en cadena) lo cierto es que en este momento si actualizo el producto me aborta la eliminación con el mensaje de que no se puede borrar porque otro usuario esta usando los mismos datos, y soy yo solo el que estoy haciendo pruebas.

Si no escribo en el producto, no ocurre el error y borra correctamente, pero ya no actualice stock y me toca sumar 1 millón de compras y ventas. jajaja.

En resumen no logro borrar si hay relaciones (de sumas y restas entre archivos no las de las tablas)
Posible mente si quito las relaciones de las tablas funcione, pero no me parece lógico.

Ademas de que si cancelan la eliminación hay que memorizar todo, para echarlo atrás.

No se si me explique, pero no encuentro una buena forma para hacer esto

Gracias, a ver si alguien se anima a ponerme unas letras




Editado por luis45ccs - 03/Octubre/2019 a las 02:05
Arriba
lupecinda Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Abril/2005
Localización: España
Estado: Sin conexión
Puntos: 79
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lupecinda Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Octubre/2019 a las 12:34
Hola.
Yo no soy experto en el tema pero creo que no tiene sentido almacenar sumas en otras tablas, sino ejecutar las sumas en el momento que las necesites.
Por otro lado, no es necesario relacionar esos campos de distintas tablas si lo haces por código.
Saludos
Carlos
Lupita
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable