Como crear un subformulario que se abra desde un botón en un formulario access

Estoy intentando crear un menu en access dentro de un formulario con 4 o 5 botones en los que cada uno de ellos me abra un subformulario dentro del mismo formulario, pero no lo consigo ni con macros, ni con formulario.

El formulario principal, se llama MENU PRINCIPAL

Y el subformulario a abrir en el MENU PRINCIPAL se llama EMPRESAS.

Me gustaría que el formulario EMPRESAS se abra dentro del menú principal para no perder de vista el botón.

No se si lo puedo hacer con macros o con código. (No se programar.)

Gracias por anticipado.

Respuesta
1

No es lo mismo un subformulario que un formulario.

Creo que lo que tu quieres, por lo que veo en tu pantallazo, es un formulario.

Probablemente si lo hayas conseguido hacer pero se abre debajo del que tienes a la vista y para que se abra delante y lo veas debes poner a este formulario, en Propiedades > Otros> Emergente>SI.

Si se tratara de un verdadero subformulario, siempre saldría a la vista, y si tienes varios subformularios solapados, deberías, mediante código Vba y unos botones, hacer visibles o invisibles los que te interesaran.

2 respuestas más de otros expertos

Respuesta
3

Es sencillo. No hace falta que lo pongas como emergente( que además no le veo ninguna utilidad), basta con poner, en el evento Al hacer clic del botón, crear un procedimiento de evento y poner

Docmd. Openform"clientes",,,,, acDialog

Con eso abrirás el formulario tal como lo has puesto en la imagen.

De todas formas, si me permites un consejo, yo quitaría el botón del formulario Principal y lo cambiaría por un combinado, con dos columnas, y en ancho de columnas 0;5 y en su origen de la fila pondría

Select IdEmpresa,NombreEmpresa from Empresas;

Así, cuando "despliegues" el combinado te mostrará el nombre de las empresas, pero su columna dependiente será la de Idempresa

Luego en sus propiedades-eventos-Después de actualizar crearía un procedimiento de evento y pondría

Docmd.openform"Empresas",,,"idempresa=" & me.nombredelcombinado & "",,acdialog

Si lo que quieres es que te lo abra en un registro nuevo para "meter datos" basta con ponerlo como

Docmd.openform"Empresas",,,"idempresa=" & me.nombredelcombinado & "",acformadd,acdialog

Mil gracias por tu amable respuesta Julián.

Es como si me hablas en chino, porque soy analfabeto informático.  ;-D

Creo además que me he expresado mal. Yo lo que quiero es crear un menu principal en el que pueda poner 4 o 5 botones y cada uno de ellos me llame a un formulario que incrustado dentro del mismo formulario principal donde están los botones, se vayan viendo cuando los seleccione mediante el botón.

Vamos por partes. Yo me guié por la imagen que pusiste. Si tengo el formulario, con dos botones

Y pulso el botón Clientes

Me abre el formulario Clientes en vista diálogo. Pero si pulso Compras, como éste es muy grande

Me lo abre en vista diálogo, es decir, por encima del otro y en un registro nuevo, el código de los botones es

Private Sub Comando0_Click()
DoCmd.OpenForm "clientes", , , , , acDialog
End Sub
Private Sub Comando1_Click()
DoCmd.OpenForm "compras", , , , acFormAdd, acDialog
End Sub

Otra cosa sería si lo que quieres es que se "abran" como subformularios dentro del formulario. En ese caso, lo que tienes que hacer es crear tantos subformularios como botones quieras. Ponerlos a todos como visibles=No. Luego seleccionarlos todos y pulsando Organizar-Tamaño-Ajustar al más o menos ancho, eso lo decides tú en función del espacio que te quede libre y luego Ajustar al más o menos alto, lo mismo. Entonces sólo tendrías que poner en el botón Clientes

me.clientes.visible=true

me.compras.visible=False

y en el botón Compras

me.compras.visible=True

me.clientes.visible=false

Así que, en función de que digas como lo quieres, se puede dar una respuesta u otra.

¡Gracias! 

Mil gracias Julian. Por fin he podido continuar adelante. Te agradezco mucho las molestias que te has tomado al contestarme y te quedo muy agradecido por tu ayuda.

Un último favor. ¿Podrías recomendarme algún libro para leer sobre como empezar en este mundo de programar pequeñas bases de datos para aplicaciones propias caseras?

Un afectuoso saludo y mil gracias.

Felipe de la Fuente

No te puedo aconsejar ningún libro porque soy totalmente autodidacta. De todas formas, con la información que hay en Internet seguro que encuentras respuesta a lo que necesites y además para eso estamos aquí.

Mil gracias Julián. Estoy trabajando en esta línea.

Seguro que te tendré que molestar a futuro. ;-D

Un afectuoso saludo,

Felipe

Respuesta
2

Lo que pides es muy sencillo, te explico paso a paso:

1º/ Abre tu formulario Menu Principal en vista diseño.

2º/ En la cinta de opciones (el menú de la parte de arriba), en la pestaña diseño, hay un grupo de "controles". Ahí hay uno que se llama "subformulario/subinforme", lo pulsas y dibujas un cuadrado en tu formulario del tamaño que quieras. Te saldrá un asistente para seleccionar qué formulario usar como subformulario, pero no hagas nada, simplemente cancela el asistente (botón cancelar).

Verás que te queda un cuadrado que dentro pone "independiente", con una etiqueta que se llamará secundarioX, donde "X" será un número.

3º/ Haz clic derecho encima de tu botón "abrir empresa", vete a "Propiedades", pestaña "Eventos", localiza la fila "al hacer clic", y pulsa en el botón de los tres puntos que aparecerá a la derecha al ponerte en ella. Selecciona "Generador de código" en la ventana y acepta. Te llevará al editor de código VBA y verás algo como ésto:

Private Sub Comando2_Click

End Sub

Y tendrás el cursor en medio de esas dos lineas (en vez de Comando2 tu veras el nombre de tu botón)

4º/ Pues ahí en medio, donde tienes el cursor, escribes esto:

Me.SecundarioX.SourceObject = "EMPRESA"

Donde SecundarioX es el nombre del control subformulario que añadiste en el paso 2.

5º/ Añade los botones para tus otros formularios, y repite los pasos 3 y 4 para cada uno, poniendo, en el paso 4, el nombre del formulario que quieres que te abra cada botón.

Esta solución es un poco mejor que la que te ofrece Julian, porque te evita tener tantos subformularios como botones quieras poner, lo que mejora la eficiencia de la BD.

Te dejo un ejemplo para que lo veas en acción: http://www.filebig.net/files/YTkQVXfHiT 

¡Gracias! 

Te agradezco mucho la ayuda. Gracias por las molestias que te has tomado al contestarme y por el fichero con el cual puedo seguir adelante, configurando mi proyecto de base de datos.

¿Podrías si no te es molestia recomendarme algún libro para empezar en este mundo de crear pequeños softwares de uso personal?

Un afectuoso saludo y mil gracias,

Felipe de la Fuente

En esta web: http://neckkito.xyz/nck/ tienes manuales y ejemplos por Neckkito, Mvp de Microsoft access los dos últimos años. Con ellos fue como me metí yo en este mundillo. También ahí encontrarás un curso de access hecho por mi, y también algunos ejemplos míos.

También puedes buscar el curso de VBA de Eduardo olaz en Internet.

Muchas gracias por la web. Me parece muy interesante y un buen punto de partida.

Ya he conseguido e impreso el manual que me indicas para comenzar a leer.

Muchas gracias por el aporte.

Un saludo,

Felipe de la Fuente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas