¿Como elimino un registro de una tabla en Access que tiene relaciones de otras 2 tablas?

Quisiera saber como poder eliminar un registro de una tabla en Access que tiene relaciones con otras 2 tablas, me explico, tengo una tabla llamada ListaPersonasGrupo la cual tiene como atributos la PK de la tabla Persona y la PK de la tabla Grupo además de un atributo que se llama Observaciones, la PK de la tabla ListaPersonasGrupo es la id de la persona junto con la id del grupo, es para que una persona pueda pertenecer a otro grupo. Lo que quiero es desplegar la lista de personas que pertenecen a un grupo (todas las personas, el grupo al que pertenece, su rut, nombre, etc. Esa consulta la tengo hecha y despliega todo correctamente), poder seleccionar esa persona y eliminarla de la tabla, o sea, para dejar de asignarle un grupo y quede disponible para poder ser ingresado a otro grupo (La lista de personas con su nombre, el grupo al que pertenece, su rut, nombre, etc. Está hecha y despliega todo correctamente). He intentado de todo para poder eliminar la persona de esa tabla, intenté con este código en el evento "Al hacer click" del botón:

Private Sub Comando3_Click()
On Error GoTo Err_Comando3_Click
Dim sino As String
sino = MsgBox("Desesa eliminarlo?", vbQuestion + vbDefaultButton1 + vbYesNo)
If sino = vbNo Then Exit Sub
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_Comando3_Click:
Exit Sub
Err_Comando3_Click:
MsgBox Err.Description
Resume Exit_Comando3_Click
End Sub

Y como mi conocimiento de Access es bastante limitado ya que este sería mi primer proyecto trabajando con esa DB, no entiendo completamente lo que hace, al probarlo me sale que no puede hacer la modificación porque crearía valores duplicados en el índice, clave principal o relación.

Le agradecería de sobremanera si me pudiesen ayudar a resolver esta problemática

2 Respuestas

Respuesta
1

En principio no entiendo como al eliminar un registro puede crear índices duplicados. Lo normal es que desde un formulario en algún evento pongas simplemente

DoCmd.RunSQL "delete * from nombretabla where idloquesea=......"

Lo de idloquesea es el criterio para definir un(os) registro(s) en paticular.

Si puedes poner una imagen de las relaciones y precisar un poco que tabla es la del que quieres eliminar el registro.

Y si quieres, mándame una copia vacía, bueno con un registro para eliminar, a [email protected] y te podré indicar mejor.

Respuesta
1

Primero eliminas el registro de todas las tablas que dependen del registro.

Y por ultimo el registro que desees eliminar.

Ejemplo:

Usuario

Usuario, códigousuario

Pantallas:

Códigousuario, otros campos etc...

Perfil

Códigousuario, otros campos etc...

No puedes eliminar al usuario en la tabla Usuario por que existen 2 tablas que usan el código usuario.

Hola José,

gracias por tu respuesta pero la idea es no eliminar una persona para poder eliminarla de un grupo al que está asignada, es solamente eliminarla de la lista, quiero que todavía exista la persona y el grupo solamente quiero eliminar su relación en la tabla ListaPersonasGrupo.

Espero haberme explicado mejor, saludos cordiales

Hice esto espero no estar tan mal, solo como comentario estoy intentando dar de alta un registro pero como el registro ya existe no me lo permite debido a que estoy duplicando la llave primaria.

Ahora bien, borre el registro como otra prueba y no me esta arrojando ningún error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas