Access mensaje antes de elimin registro en fórmula

Espero que me puedas ayudar con un tema en el que ando un poco bloqueado y no se como hacerlo.
Tengo la siguiente tabla:
Tabla1:
Registo Campo1 Campo2..
1 Juan
2 Luis Juan
3 Pedro Juan
4 Ramón Pedro
Tengo un formulario en el que me aparecen todos estos registros y al cual le agregue un botón de eliminar.
Ahora bien, lo que necesito es que cuando yo quiera eliminar el registro por ejemplo de Juan (registro 1), me salga un mensaje como este: "No se puede eliminar el registro, primero tiene que cambiar el Campo2", es decir, que solo me permita eliminar el registro cuando no exista ese mismo nombre en el Campo2, solo puedo eliminar si Juan no aparece en ningún registro del campo2.
En este caso, me tendría que ir a los registros 2 y 3 y quitar del Campo2 a Juan, de tal forma que cuando quite eso, ahora si ya los pueda eliminar.
Todos los datos están dentro de la misma tabla, y el nombre puede estar varias veces en el campo2, aunque solo esta 1 vez en el campo 1.
Y bueno, si es posible también me gustaría que cuando salga el mensaje, también me dijera los registros que tengo que modificar para poder eliminarlo. "No se puede eliminar el registro, primero tienes que modificar los registros 2 y 3".

1 respuesta

Respuesta
1
Tenemos una tabla Tabla1 con los campos Registro, Campo1 y Campo2.
En un formulario un cuadro combinado que llamamos selRegistro, en origen de la fila:
SELECT Tabla1.Registro FROM Tabla1 ORDER BY [Registro];
En la acción Al hacer clic ---> Procedimiento de Evento ---> Me. Refresh
Un cuadro de lista que llamamos Cambiar, en origen de la fila no pongas nada.
Un botón con el siguiente código:
Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Set db = CurrentDb
Set rs1 = db.OpenRecordset("Select * from Tabla1 where Registro=" & Form!selRegistro.Value & "")
Set rs2 = db.OpenRecordset("Select * from Tabla1 where Campo2='" & rs1!Campo1 & "'")
If rs2.EOF Then
DoCmd.RunSQL "Delete Registro from Tabla1 where Registro=" & Form!selRegistro.Value & ""
Else
Form!Cambiar.RowSource = "SELECT Registro, Campo1, Campo2 FROM Tabla1 WHERE Campo2 in (Select Campo1 From Tabla1 where Registro=Val(form!selRegistro.value))"
MsgBox ("No se puede eliminar el registro")
Me.Refresh
End If
Pruébalo y me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas