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
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
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.
- Compartir respuesta