Pasar datos de un formulario de selección a otro que esté abierto

Estoy diseñando una base de datos donde en varios formularios se ha de seleccionar un operario.

La consigna es que los operarios no tengan que teclear ningún dato para evitar discrepancia, por lo que solo se pueden utilizar datos previamente almacenados en tablas.

Por norma general esto se hará escaneando una tarjeta NFC que llevan todos los empleados con su numero personal, que ejecutará una búsqueda en la tabla de personal, guardando el numero de personal de la tarjeta pero mostrando el nombre del operario en pantalla.

A pesar de esto, mis jefes insisten en crear una forma de introducir el nombre en caso de que no lleven la tarjeta encima, para lo cual he creado un botón de búsqueda manual, el cual abre otro formulario donde hay un combobox que carga apellidos y nombre desde la tabla de personal, devolviendo el valor del numero de personal al primer formulario. He llamado a este segundo formulario "BusqNombreManual"

Mi pregunta es si existe alguna forma de hacer que devuelva el valor seleccionado en este segundo formulario al campo Me.Operario* del primer formulario.

El problema viene en que el primer formulario no siempre será el mismo ("AltaMuestra!OperarioAlta", "EntregaMuestra!OperarioEntrega", "InicioAnalisis!AnalistaInicio", etc..)

En el peor de los casos crearía un formulario de búsqueda manual para cada uno de estos formularios, donde el código estaría dirigido directamente al formulario precedente, pero me preguntaba si alguien conocía una manera de simplificar este proceso.

Muchas gracias y disculpas si la pregunta parece obvia, sigo aprendiendo a trancas y barrancas...

Respuesta
1

SI! Lo que quieres hacer se puede hacer pero veo que es un sistema un poco "enredado" o sea con poca planificacion y analisis de los datos (me disculpa si te ofendo en algo). Las relaciones de tus tablas y el diseño por lo poco que dices como son tus tablas

Lo que logro entender y lo que es la tarjeta NFC (siglas de Near Field Communication) es un sistema de comunicación inalámbrico de corto alcance (funciona por proximidad) y tiene una pequeña capacidad; los pocos datos que tendria la tarjeta serian por lo menos la informacion o numero de identificacion del propietario.

La forma mas facil y rapida seria solamente que el usuario digitara su numero de identificacion ya que dices "... el cual abre otro formulario donde hay un combobox que carga apellidos y nombre desde la tabla de personal, devolviendo el valor del numero de personal ..." y es en esta tabla donde tienes la informacion del propietario de la tarjeta.

Por otro lado cuando dices que: ... "AltaMuestra!OperarioAlta", "EntregaMuestra!OperarioEntrega", "InicioAnalisis!AnalistaInicio"; intuyo que son funciones o quehaceres o trabajos que realiza cada operario; para esto tendrias que hacer una tabla de funciones o trabajos que realizarian los operarios.

Ahora bien la situacion es que un operario puede realizar varios trabajos ; asi mismo en varios trabajos pueden trabajar vario operarios (logicamente en distinta unidad de tiempo); entonces tendrias una relacion de varios a varios. Cualquier duda comentas y con mucho gusto te respondere.

Cuando digo " ... el diseño por lo poco que dices como son tus tablas...." . quiero decir " ... así como tus tablas parecen erróneas..."

¡Gracias!

No ofendes para nada, tranquilo.

Empecé este proyecto por orden de mi jefe en enero, cuando lo único que sabia de Access es que era un icono que andaba por ahí en la carpeta de Office.

Vio un aplicativo que habían creado en otra fabrica de mi empresa para la gestión integral del flujo de muestras en los laboratorios y quiso hacer algo parecido. La base de datos la había creado uno de los trabajadores del laboratorio de allí, que tenia conocimientos previos de bases de datos y programación

Así que en lugar de contratar a un informático o pedir que trasladaran temporalmente a este chico, me dijo que le fuera dedicando un rato a aprender, que total, si sabia configurar la impresora, quería decir que se me daban bien los ordenadores...

No se si el diseño o mis tablas son erróneas. Ahora mismo me funciona correctamente en su forma más básica, pero estoy ampliando su funcionalidad para que puedan usarla de la forma más sencilla posible, ya que realmente gestiona muchas operaciones en las que mete mano mucha gente, y quieren que todo quede registrado. Pero soy consciente de que seguramente estoy cometiendo errores que a alguien que entienda, pueden parecer garrafales.

Ahora mismo me están presionando para tenerla funcionando aunque sea en forma de beta para principio de Mayo de cara a una visita de los jefazos europeos. Mi idea es ir puliendo posibles errores o volver a diseñarla de 0 a posteriori.

Igualmente te agradezco la ayuda. Toda critica es bien recibida!

Escribeme a [email protected]

Estoy haciendo un ejemplo ya te lo envío

1 respuesta más de otro experto

Respuesta
1

Puedes hacerlo con If CurrentProject.AllForms("NombreFormularioDestino").IsLoaded Then...

La cosa iría así, desde el formulario de selección:

If CurrentProject.AllForms("AltaMuestra").IsLoaded Then Forms("AltaMuestra").OperarioAlta=Me.NombreCombo

If CurrentProject.AllForms("EntregaMuestra").IsLoaded Then Forms("EntregaMuestra").OperarioMuestra=Me.NombreCombo

Y así con todas las posibilidades.

Lo que está en negrita es lo que tienes que modificar para adaptarlo a tus nombres.

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas