Abrir distintos formularios según botones de opción

Siguiendo con las modificaciones en mi base de datos, me gustaría poner cuatro botones de opción y con un mismo botón de comando que me abra distintos formularios según la elección en los botones de opción.

1 respuesta

Respuesta
1

Suponiendo que pongas un "marco de opciones" y no botones de opción individuales (que se puede hacer, pero es un poco más lioso) es muy sencillo:

Como digo, supongamos que tienes un "marco de opciones" llamado, en un alarde de originalidad, Marco1, con las opciones "Clientes","Proveedores", "Compras" y "Ventas". A cada valor de las opciones le corresponde un valor numérico, supongamos que Clientes es 1, Proveedores es 2 y así sucesivamente. Si tienes 4 formularios que se llamen FClientes, FProveedores, FCompras y FVentas, en el evento "al hacer clic" de tu botón solo has de ponerle este código:

Select Case Me.Marco1
Case 1: DoCmd.OpenForm "FClientes"
Case 2: DoCmd.OpenForm "FProveedores"
Case 3: DoCmd.OpenForm "FCompras"
Case 4: DoCmd.OpenForm "FVentas"
Case Else: Msgbox "No has seleccionado ninguna opción.", vbInformation,"ERROR"
End Select

¡Muchas gracias! Lo he probado y funciona tal y como yo quería. Gracias por la ayuda.

Buenas noches, con respecto al objeto de la pregunta.

Cuando abro el formulario seleccionado por el botón de opción, y después vuelvo al mismo formulario donde tengo los botones de opción ¿cómo podría mantener marcada la opción anterior? Es decir, por ejemplo:

Marco la opción "C", y con el botón de comando abro el formulario "C" y se cierra el formulario "principal" (donde están los botones de opción), cuando vuelvo al formulario principal me aparece marcada la opción "A", ¿cómo se podría mantener la misma opción al volver al formulario principal?

Gracias de antemano por vuestra ayuda.

Una forma muy sencilla:

En un módulo independiente (no asociado a un formulario), nuevo o ya existente, en el encabezado del mismo, debajo de las lineas Option... que puedas tener (si tienes alguna), creas una variable pública, por ejemplo así:

Public laOpcion As Integer

Te quedará como:

En el evento "Al cargar" del formulario donde tengas el marco de opciones, le generas este código (siguiendo con el ejemplo de que el nombre es Marco1):

Private Sub Form_Load()
If Not Nz(laOpcion, -1) = -1 Then Me.Marco1 = laOpcion
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas