Como es mejor mostrar muchos datos, con subformularios o pestañas

Tengo creado un Formulario general donde he puesto un menú lateral y un gran espacio al lado para mostrar los datos que me interesan según pulso los botones del menú lateral.

El problema que tengo es que debo mostrar muchos muchos datos. Tengo varias secciones que mostrar y en cada sección hay muchísimos datos y controles, si lo hago mediante un solo control de pestañas, una pestaña por sección, llega un momento que access me dice que no se pueden poner más controles en ese formulario.

Sección 1 - Datos generales

Sección 2 - Datos del instrumento

Sección 3 - Datos del personal

Sección 4 - Datos ambientales y cálculos

Sección 5 - Cálculos de los datos recogidos en las pruebas (por ejemplo aquí solo hay casi 100 controles)

Así que he pensado en lo siguiente. Hacer un formulario por cada sección con todos los datos que necesito. Problema resuelto en cuanto a cantidad de controles en un solo formulario.

Formulario 1 - Sección 1

Formulario 2 - Sección 2

Pero ahora debo mostrar todos esos formularios individuales en el formulario principal. El como es lo que no tengo muy claro.

1 - Un control de pestañas y en cada pestaña poner un formulario individual(sección) . Problema, en el formulario principal hay un campo NumExpediente que es el campo principal que une todo el resto de subformularios para obtener los datos y rellenar las tablas correspondientes. No se como enlazar el campo NumExpediente del formulario principal con los formularios que hay en cada pestaña. Es lo más cómodo para mí pues solo debo activar y desactivar la pestaña que me interesa cada vez que pulso un botón.

2 - Poner en el formulario principal tantos subformularios como secciones tengo que mostrar. Pero para eso tengo que ir mostrando, cambiando los tamaños etc... Y me es difícil trabajar así.

¿Hay alguna otra forma de mostrar subformularios de forma fácil y vincular los campos principales y secundarios de forma fácil?

2 respuestas

Respuesta

Sin saber exactamente como es tu base, te diría que puedes hacer un formulario, vamos a llamarlo Principal y desde él abrir en vista diálogo los formularios que te interesen. Por ejemplo, en el formulario Principal pones un botón Clientes y en sus propiedades-eventos-al hacer clic crear un procedimiento de evento y poner

Docmd.openform"clientes",,,"Idcliente=[Escriba un número de cliente]",,acdialog

Así, cuando pulses el botón te pedirá que escribas un número de cliente, lo escribes y se abre el formulario Clientes en ese número y en vista diálogo( por encima del formulario Principal)

Lo de idcliente sería el criterio que usas para diferenciar un registro de Clientes de otro

Otro botón podrías ser Instrumentos, de forma que al pulsarlo te abriera el formulario Instrumentos en vista diálogo, en el(los) registro(s) que indique el criterio.

Es más, si necesitaras verlos seguidos podrías poner en el evento A l cerrar del formulario Clientes

Docmd. Openform"instrumentos",,,,, Acdialog

Y así con los demás

Pero puedes hacerlo de muchas formas, sería conveniente que pusieras una imagen del formulario Principal

Respuesta

Si son muchos los subformularios pueden utilizar 2 tablas:

1. Tabla formularios principales.

      Campos idform  y nombform

2. Tabla subformularios

Campos id, idform y nombsubform

En la tabla 1 registra los formularios principales y en la tabla 2 registra los formularios, los cuales van relacionados mediante el campo idform de la tabla 1

En los formularios principales adiciona un cuadro combinado en donde el origen de datos es la tabla 2, en donde idform es igual al idform del formulario principal. El idform del formulario principal lo puede obtener de 2 formas, con una variable publica o mediante DLOOKUP().

Le dejo esta idea asumo que hay otras soluciones.

Le complemento y para abrir el subformulario, serial algo como:

Evento después de actualizar del cuadro combinado (lo llamo cboSubform)

Docmd.openform me.cboSubform.Column(1),,,"Id=" & Me.id

En este código cboSubform es el cuadro combiando que contiene la lista de subformularios, si la columna principal es la 1, es decir el id, tomo cboSubform.Column(1) (el nombre del subformulario a abrir)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas