¿Cómo se puede añadir subformularios a Access?

He creado a través del asistente de formularios de Access un formulario principal con dos subformularios,

Pero requiero añadir más subformulario y el asistente no lo permite, he intentado añadirlo pero el problema es que no funcionan de la misma forma. Es decir el primer subformulario depende del formulario principal y el segundo subformulario depende del primer subformulario.

Entonces necesitaría añadir subforms que fueran dependientes en escala. Que cuando pulse una opción de subformulario 2 el 3 filtre según esa opción.

6 Respuestas

Respuesta

Kissasian provide you all korean serials, movies and Kissasian Shows full free in hd stream.
Are you looking for a cool mobile game with great features? Check out Nulls Brawl Apk v56.274.

Respuesta
2

Primero, bendito tú que en la pantalla te caben un formulario con dos subformularios. Mi ordenador es un portátil y ya bastante que entre un formulario con un subformulario.

Segundo, te voy a poner un ejemplo. Ya es difícil para un padre pelear en casa con sus hijos( y las nueras, no nos olvidemos de ellas), como para tener que pelear con nietos, bisnietos, etc. ¿No sería más sencillo hacer un formulario con un subformulario y en cualquier evento del subformulario decirle que abra, en vista diálogo, "filtrado" el subsubformulario, y en el subsubformulario lo mismo, y así hasta...?. Equivaldría a que el nieto se pelee con sus hijos, el hijo con los suyos y el padre con los hijos.

Te adjunto una imagen de las relaciones de que tengo del Access y tengo la necesidad de que el usuario en el formulario pueda visualizar y acceder a cada uno de los apartados. La verdad que no se  como generarlo al 100 % si tienes alguna alternativa te lo agradeceré.

muchas gracias

Vamos a suponer que tengo una tabla Paises, otra tabla Ciudades, otra tabla Empresas y otra tabla Contactos, de forma que un país puede tener varias ciudades, una ciudad varias empresas, una empresa varios contactos...

Con la tabla Paises y la tabla Ciudades hago un formulario con subformulario

Si hago clic en Idciudad( pero podría ser en cualquier otro evento)

Me abre, en vista diálogo, el formulario Empresas para que anote(o compruebe) las empresas que hay en Berlín.

Si hago clic en idempresa

Me abre el formulario Contactos, en vista diálogo, y superpuesto al anterior, de esa empresa para anotar o comprobar.

En el evento Al hacer clic( pero podría ser en cualquier otro evento) del control Idciudad del subformulario Ciudades le digo

DoCmd.OpenForm "empresas", , , "idciudad=" & Me.IdCiudad & "", , acDialog

En el evento Al hacer clic del control Idempresa del subsubformulario Empresas le digo

DoCmd.OpenForm "contactos", , , "idempresa=" & Me.IdEmpresa & "", , acDialog

Y así hasta...

Respuesta
2

Aunque Icue ya te respondió satisfactoriamente, permíteme indicarte una forma en la que puedes hacer subformularios en cascada con este ejemplo: http://www.filebig.net/files/GmeiUbF5wq

La BD es muy simple, con esta estructura:

El formulario TPaises tiene un subformulario dependiente (TRegiones). Si te fijas en sus propiedades, verás que está relacionado con el formulario principal por los campos IDPais (de TPaises,) como campo principal y Pais (de TRegiones) como campo secundario.

El formulario TPaises tiene a su vez otro subformulario (TCiudades) que dependerá del valor seleccionado en el subformulario TRegiones. En este caso los campos relacionados son IDRegion (del subformulario TRegiones) como principal y Region (de TCiudades) como secundario.

Fíjate en la notación del primero: [TRegiones]!Form![IDRegion], es decir, el nombre del subformulario (TRegiones), la palabra Form, para indicar que se trata de un formulario, y el nombre del Campo (IDRegion)

Además, para que el "invento" funcione, en el evento "al activar registro" del subformulario TRegiones, hay que programar un pequeño código:

Private Sub Form_Current()
On Error Resume Next
Me.Parent![TCiudades].Requery
End Sub

que no hace otra cosa que decirle al subformulario TCiudades que se recargue para mostrar las ciudades correspondientes a la región seleccionada.

Y siguiendo este esquema tan simple (relacionando los campos de un subformulario con los del anterior y programando ese evento), podrías añadir a tu formulario los subformularios en cascada que necesites.

Un saludo.


Víctor, en el ejemplo verás que el código es diferente al que indico en mi respuesta, eso es porque el ejemplo es de hace bastantes años y lo hice de otra forma, pero si lo dejas tal cual indico en la respuesta funciona perfectamente.

Respuesta

Ese evento se produce ANTES DE INSERTAR, como su nombre indica... :D no puedes Asignar valores a un registro que TODAVÍA NO EXISTE.
Por eso te sugería la posibilidad de usar el "valor predeterminado".
Haz una cosa. Deja solo el predeterminado, y prueba a poner un = delante, así:
=forms![BDGrupos1]![Consecutivo_grupo]
A ver que tal rula y me lo cuentas...

https://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/super mario bros

Respuesta

Unfortunately the Access wizard limits how many layered interdependent subforms you can create. The functionality you are looking for, with cascading filter effects from main form to multiple subforms, takes some custom VBA coding. I would suggest abandoning the wizard-generated forms, and instead build your forms from scratch. That way you have full control to add event procedures that link filtering and navigation between all levels of your forms. Focus on getting the table relationships correctly set up first, then create the main form and add the first subform. After that is working properly, keep adding additional subforms one by one, using VBA code to sync the filtering and navigation between them. This takes more work up front but gives you the flexibility to create those interdependent multi-level forms. Let me know if you need any help with the VBA syntax to connect it all! The latest feature of Blue WhatsApp. Free download from any search engine. Hide you online, reading, typing, and seeing status.

Blue WhatsApp has emerged as one of the most popular messaging apps. It stands out for allowing users to operate two WhatsApp accounts from the same phone. This dual account feature makes it convenient to separate personal and professional communication.

Respuesta

After exploring a handful of the articles on your website, I seriously like your way of writing a blog. I bookmarked it to my bookmark site list kissasian and will be checking back in the near future. Take a look at my web site too and let me know how you feel.

¡Entiendo el problema que estás enfrentando! Para lograr que los subformularios dependan uno del otro en Access, necesitas configurar correctamente las relaciones entre ellos para que se filtren en función de las selecciones del subformulario anterior. Aquí te dejo algunos pasos que podrían ayudarte a solucionar el problema:

1. **Configura las Relaciones entre los Subformularios:**
- Abre el formulario principal en vista de diseño.
- Añade el tercer subformulario (subformulario 3) al formulario principal.
- Asegúrate de que el tercer subformulario esté vinculado al segundo subformulario. Para ello, selecciona el subformulario 3 en la vista de diseño, ve a las propiedades del subformulario y configura las propiedades de enlace adecuadamente.

2. **Utiliza la Propiedad `On Current` o `After Update`:**
- Para que el subformulario 3 se filtre según la selección en el subformulario 2, necesitarás usar eventos como `After Update` en el subformulario 2. Esto significa que cada vez que cambie la selección en el subformulario 2, el subformulario 3 se actualizará para reflejar esa selección.
- En la vista de diseño del subformulario 2, selecciona el control que usas para seleccionar la opción (por ejemplo, un cuadro combinado) y ve a las propiedades del control.
- En la pestaña "Eventos", encuentra el evento `After Update` y escribe un código VBA para actualizar el subformulario 3. El código podría verse algo así:
```vba
Private Sub NombreDelControl_AfterUpdate()
Me.Subformulario3.Form.Requery
End Sub
```

3. **Ajusta los Filtros en el Subformulario 3:**
- En el subformulario 3, puedes ajustar las propiedades de filtro en la vista de diseño para que los datos se filtren en función de la selección en el subformulario 2.
- Selecciona el subformulario 3, ve a sus propiedades y ajusta la propiedad `Record Source` para que use un filtro basado en el valor seleccionado en el subformulario 2.

4. **Verifica la Configuración de los Enlaces:**
- Asegúrate de que las propiedades `Link Master Fields` y `Link Child Fields` estén correctamente configuradas en los subformularios. Estos campos aseguran que los subformularios se sincronicen entre sí.

Si sigues estos pasos y ajustas las configuraciones según tus necesidades, deberías poder lograr que los subformularios se filtren en función de las selecciones en los subformularios anteriores. ¡Espero que esto te ayude a resolver tu problema! hianime

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas