Formularios que se cierren abriendo otro

Tengo un formulario que me lleva a subformularios con botones de comando. Pinchan el boton me lo abre y pulsando otro boton me cierra el abierto y me abre el nuevo Por aquí no tengo problema.

Mi problema es que no quiero que se vea ninguno cuando abro la base de datos que siempre me muestra el mismo. No sé que criterio sigue y o né como puedo hacer que no aparezca ninguno hasta que pinche

1 Respuesta

Respuesta
2

Vamos a ver si lo he entendido. Cuando abres la base, se muestra un formulario de inicio, que me parece entender que tiene dos subformularios, que por lo que dices deben estar superpuestos, y que si pulsas un botón del formulario se cierra el primero que aparece y se muestra el segundo. Si es eso puedes poner los dos subformularios como ocultos Propiedades-Formato-Visible=No y en el evento al hacer clic del primer botón poner algo como

me.subformulario1.visible=true

me.subformulario2.visible=false

y en el otro botón

me.subformulario1.visible=false

me.subformulario2.visible=true

Convendría también, aunque los hayas puesto como visibles=no, poner, en el evento Al activar registro
me.subformulario1.visible=false

me.subformulario2.visible=false

¡Gracias!  Muchas gracias funciona fenomenal

Un saludo

Julián... perdona... las instrucciones que me diste han funcionado sin problemas pero si quiero cerrar el subformulario para seguir trabajando en el formulario ¿cómo lo hago?

Gracias

Puedes hacerlo de mil formas, por ejemplo, en el evento Al hacer clic de un cuadro de texto puedes poner

Me.subformulario1.visible=false

Me.subformulario2.visible=false

También lo puedes poner en un botón, en una etiqueta, al bajar una tecla que no uses, por ejemplo

Ik keycode=70(por poner un número) then

Me.subform...

Si me dices exactamente cuando y cómo lo quieres cerrar podría ser más concreto.

Hola... lo que estaba pensado es poder cerrarlo al tocar cualquier parte del formulario (principal).

Es decir, yo tengo un formulario con 5 subformularios y sus correspondientes botones dentro de un cuadro de opciones. A los botones les tengo puesto al recibir enfoque y se abren. Abro un formulario y para cerrarlo pulso otro y se me abre.

Pues bien... me gustaría que pulsando (haciendo clic) en cualeuuier parte del formulario principal se me cerrara e subformulario que tengo abierto sin necesidad de tener que cambiar de registro para que me aparezca solo el formulario sin ningún subformulario abierto.

¡Gracias!

Es que un formulario no deja de ser un control más. Tiene los mismos, o más, eventos que un cuadro de texto. Por tanto lo de arriba lo puedes poner, en el evento al hacer clic, al hacer doble clic, etc. del formulario.

Hay algo que no hago bien porque no me obedece cuando en el código pongo doble clic. Te mando el código por si puedes ver donde está el error

Private Sub Form_Open(Cancel As Integer)

Me!CANJES.Visible = False

Me!DATOSP.Visible = False

Me!DATOSM.Visible = False

Me!SERVICIOS.Visible = False

End Sub

Private Sub BCANJES_GotFocus()

Me!CANJES.Visible = True

Me!DATOSP.Visible = False

Me!DATOSM.Visible = False

Me!SERVICIOS.Visible = False

End Sub

Private Sub BDATOSP_GotFocus()

Me!CANJES.Visible = False

Me!DATOSP.Visible = True

Me!DATOSM.Visible = False

Me!SERVICIOS.Visible = False

End Sub

Private Sub BDATOSM_GotFocus()

Me!CANJES.Visible = False

Me!DATOSP.Visible = False

Me!DATOSM.Visible = True

Me!SERVICIOS.Visible = False

End Sub

Private Sub SERVICIOS_GotFocus()

Me!CANJES.Visible = False

Me!DATOSP.Visible = False

Me!DATOSM.Visible = False

Me!SERVICIOS.Visible = True

End Sub

Private Sub Form_DblClick(Cancel As Integer)

Me!CANJES.Visible = False

Me!DATOSP.Visible = False

Me!DATOSM.Visible = False

Me!SERVICIOS.Visible = False

Vamos a ver, por un lado hablas de un grupo de opciones, pero luego hablas de usar cada cada valor. Por otro lado. Un formulario está compuesto de secciones. Al no saber como tienes construido el formulario, tengo que suponer

Si tengo un formulario con un grupo de opciones que se llama Marco0 y tres subformularios que están ocultos- Propiedades-FRormato-Visible=No

Si pulso el de Clientes

Si pulso Detallepedidos

Si pulso tabla2

Y ahora "desplazo" todo a la izquierda(es sólo para el ejemplo) para que veas todo el espacio donde puedes hacer clic. Si hago clic en cualquier sitio del espacio blanco a la derecha

Pero estás haciendo clic, no en el formulario, estás haciendo clic en la sección Detalle del formulario. El código es simplemente

Private Sub Detalle_Click()
Clientes.Visible = False
Tabla2.Visible = False
DetallePedidos.Visible = False
End Sub
Private Sub Marco0_AfterUpdate()
If Marco0 = 1 Then
Clientes.Visible = True
Tabla2.Visible = False
DetallePedidos.Visible = False
ElseIf Marco0 = 2 Then
Tabla2.Visible = False
Clientes.Visible = False
DetallePedidos.Visible = True
Else
DetallePedidos.Visible = False
Clientes.Visible = False
Tabla2.Visible = True
End If
End Sub

He tenido que ponerlo así, por que supongo, que primero, abres uno, y después abres otro y otro. Ya que si sólo abrieras uno de cada vez sobraría lo de ocultar a los otros.

¡Gracias! 

Me ha funcionado fenomenal.

Tenias razón, mirá que sabia lo del detalle pero no me he dado cuenta de eso.

Un saludo

HOla Julián.. retomo este este tema porque me ha surgido un problema cuando he comenzado a introducir datos.

Si tengo un subformulario abierto con el cursor, al hacer click en el detalle del formulario principal para que lo cierreo me sale este error.

Si doy a cualquier otro botón de los otros subformularios me lo cambia sin problemas.

¿Me podrías decir cuál seria la solución?

Gracias

No sé como lo tienes hecho, por tanto todo es suposición. Supongamos que tengo el formulario

Pulso en Clientes

Le voy a añadir algo a Maria Anders o cambio algo, escribo algo, etc

Ahora hago doble clic sobre la parte naranja. Lo he puesto de ese color para que se distinga lo que ocupa la sección Detalle

Vamos a suponer que estamos con Compras

Voy a cambiar el proveedor

Hago doble clic sobre la parte naranja

El código en total del formulario es

Private Sub Detalle_DblClick(Cancel As Integer)
Me.Clientes.Visible = False
Me.Compras.Visible = False
Me.Proveedores.Visible = False
End Sub
Private Sub Marco88_AfterUpdate()
Select Case Marco88
Case Is = 1
Me.Clientes.Visible = True
Me.Compras.Visible = False
Me.Proveedores.Visible = False
Case Is = 2
Me.Clientes.Visible = False
Me.Compras.Visible = True
Me.Proveedores.Visible = False
Case Else
Me.Clientes.Visible = False
Me.Compras.Visible = False
Me.Proveedores.Visible = True
End Select
End Sub

Hola Julián... le estoy dando y dando vueltas y nada. He copiada tal cual tu código pero me sigue el mismo problema

Solamente me funciona si lo abro y no toco ningún elemento de subfomrulario. En este caso si me deja hacer doble clic en el detalle y cierra el formulario.

Pero si tengo el enfoque (o curso parpadeando) en el del subforrmularion me lanza el error

Vamos a hacer una cosa. Mándame un mensaje (sólo el mensaje) a [email protected] y te mando el ejemplo, y así puedes ver como lo hago y adaptarlo al tuyo.

Si lo haces, en el asunto del mensaje pon tu alias Sergio Casado, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas