Establecer valor de un campo en otro

Necesito establecer el valor de un campo en un formulario1 (CAMPO A) en el CAMPO B de otro formulario2. La idea es que al abrir el formulario2 en el nuevo registro el CAMPO A tome el valor del CAMPOB y luego el cursor se mueva a un campo C para seguir introduciendo más datos.

He probado varias cosas, pero ninguna me ha funcionado. Agradecería si alguien pudiera darme alguna solución para este problema que, a simple vista, no parece algo complicado.

3 Respuestas

Respuesta
1

Con una macro es sencillo, se utiliza la acción 'establecer valor' (puede ser necesario expandir todas las opciones de las macros)

Solo hay que indicar (rellenar los datos) de cual es el que cede el dato y quien lo recibe el dato, se guarda con un nombre y estará disponible en los eventos de los objetos (el de pulsar un botón, recibir el foco ... abrir el formulario)

Lo único indispensable y requerido cuando se trabaja con formularios, es que ambos tienen que estar abiertos (para Access un formulario cerrado NO existe como tal objeto).

Si se utiliza VBA se puede hacer una asignación directa y para ello igualmente se necesita que ambos estén abiertos y se le tiene que indicar la ruta absoluta del objeto externo.

Ruta absoluta de un objeto Access: Tipo de objeto + nombre del objeto + destino en el objeto

Ruta relativa de un objeto de Access: conoce el tipo y nombre (pues pertenece a él) y se puede referenciar con un 'ME' al que solo se tiene que añadir el destino.

Desde el formulario1 al formulario2

Forms.Formulario2.CAMPOB = Me.CAMPOA

Desde el formulario2 al formulario1

Me.CAMPOB = Forms.Formulario1.CAMPOA

Ambos pueden utilizar su ruta absoluta:

Forms.Formulario2.CAMPOB = Forms.Formulario1.CAMPOA

Para desplazarse a un objeto de un formulario, el formulario tiene que tener el foco (o enviársele el foco si no lo tiene) y tras ello el foco al objeto.

Me. CAMPOC. SetFocus

Nota: no es necesario que un objeto tenga el foco para asignarle un valor, tener el foco solo es imprescindible para recibir datos introducidos por el teclado.

Respuesta
1

Vamos a suponer que el formulario2 lo abres desde el formulario1. En el evento Al cargar( o al abrir, o al activar registro) del formulario2 puedes poner

If currentproject.allforms("formulario1").isloaded then

campob=forms!formulario1!CampoA

campoc.setfocus

end if

Me explico, cuando se abre el formulario2, comprueba si está cargado(abierto) el formulario1, que sí lo está pues lo abres desde él. Entonces, te pone en el campo B el valor que figura en ese momento en el campoA del formulario1 y el cursor se va al campoC

De todas formas, te he enviado un ejemplo a tu email- Por cierto, Feliz Año

Respuesta
1

La solución es como lo indica Julián González, es clara y precisa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas