** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Eliminar un registro de subformulario
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoEliminar un registro de subformulario

 Responder Responder
Autor
Mensaje
Antonalo Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Noviembre/2009
Localización: España
Estado: Sin conexión
Puntos: 444
Enlace directo a este mensaje Tema: Eliminar un registro de subformulario
    Enviado: 08/Agosto/2018 a las 12:12
Hola
 Tengo un Formulario de profesores con un subformulario de registros continuos de las aulas en las que entra. Ambos formularios están relacionados por el campo IdProfesor. Al eliminar un profesor también se eliminan en cascada los registros de las aulas en las que entra. Las aulas no se eliminan, se eliminan los registros de una tabla de combinación entre profesores y aulas.

No solo cabe la posibilidad de eliminar un profesor que ya no está en la escuela sino que también está la opción de simplemente eliminar el registro del subformulario de aulas relacionadas, ya que ahora le corresponden otras aulas, y aquí empieza mi problema y mi pregunta.

El comando "Eliminar registro" de la cinta de opciones de acces, lo hace perfectamente: si tengo el foco en el formulario principal, me elimina el registro del profesor y todas sus aula en cascada. Y si tengo 
el foco en un registro de el subformulario (registros continuos, como una tabla) , me elimina simplemente ese aula relacionada.

Yo no quiero que el usuario tenga que recurrir a la cinta de opciones, quiero poner un botón que mediante código, sepa diferenciar si estoy en el form o en el subform porque el codigo

  DoCmd.RunCommand acCmdSelectRecord
   DoCmd.RunCommand acCmdDeleteRecord

que me genera el asistente, siempre me borra el registro del formulario principal, además quiero preguntar al usuario si lo que quiere borrar es el aula o al profesor, no vaya a ser que tenga el foco donde no debe.

¿como puedo hacer?





Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5755
Enlace directo a este mensaje Enviado: 08/Agosto/2018 a las 12:32
Hola!

Puedes mandar siempre el foco a un campo del formulario esté o no en el subformulario.

Me.Form.SetFocus
DoCmd.RunCommand acCmdDeleteRecord
Un Saludo.
Arriba
Antonalo Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Noviembre/2009
Localización: España
Estado: Sin conexión
Puntos: 444
Enlace directo a este mensaje Enviado: 08/Agosto/2018 a las 12:53
Hola mounir, con lo que me has puesto me sigue pasando lo mismo, siempre me borra el registro del formulario principal.

he hecho la siguiente comprobación:

 Me.Form.SetFocus
  MsgBox Me.Form.Name

   DoCmd.RunCommand acCmdSelectRecord
   DoCmd.RunCommand acCmdDeleteRecord

Y siempre me dice que estoy en Profesores, no en SubProfesoresAulas. Por otro lado tampoco me extraña, ya que el comando eliminar está en el formulario principal, no sé si será por eso
Arriba
Antonalo Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 06/Noviembre/2009
Localización: España
Estado: Sin conexión
Puntos: 444
Enlace directo a este mensaje Enviado: 08/Agosto/2018 a las 13:23
Vale mounir, ya lo he encontrado. y gracias a ti por la idea te pego el codigo, a ver que te parece:

Private Sub CmdEliminarRegistro_Click()

On Error GoTo Err_CmdEliminarRegistro_Click

  If MsgBox("¿Quieres eliminar a este profesor?", vbYesNo) = vbYes Then


     DoCmd.RunCommand acCmdSelectRecord
     DoCmd.RunCommand acCmdDeleteRecord

  ElseIf MsgBox("Quieres eliminar el aula seleccionada?", vbYesNo) = vbYes Then
    
       Me.SubPersonalAulas.SetFocus
    
       DoCmd.RunCommand acCmdSelectRecord
       DoCmd.RunCommand acCmdDeleteRecord

   End If

Exit_CmdEliminarRegistro_Click:
    Exit Sub

Err_CmdEliminarRegistro_Click:
    MsgBox Err.Description
    Resume Exit_CmdEliminarRegistro_Click
    
End Sub
 
Va perfecto


Editado por Antonalo - 08/Agosto/2018 a las 13:26
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable