¿Cómo creo un formulario en diálogo?

Deseo que desde un formulario que ya tiene datos visualizados (y que está asociado a una primera tabla), a través de un botón se abra el "formulario diálogo" que cogerá algunos datos del formulario y, asimismo, dará la posibilidad de coger datos de una segunda tabla. Los datos seleccionados en el "formulario diálogo" se guardarán en una tercera tabla. ¿Creéis qué es posible?

2 Respuestas

Respuesta
2

Para abrir un formulario en modo diálogo, tienes esa opción en el Método DoCmd. OpenForm o en la macro AbrirFormulario, según la opción que uses para programar el botón.

Con código, que es lo que yo uso, sería:

DoCmd. OpenForm "nombreFormulario",,,,, acDialog

Hola, Sveinbjorn El Rojo:

Estoy retomando el proyecto en el punto que lo dejé y varias consultas. Comencemos con la fácil (que no lo es para mí): la idea es que el diálogo que se desplegue coja unos datos del formulario y, a su vez, contenga un desplegable que cojerá datos de una tabla diferente... ¿es posible hacerlo? He buscado info pero es bastante confuso para alguien que no es experto, ni hobbit... para un gusano de tierra en acces =)

Claro que se puede, pero todo depende de cómo lo quieras hacer...

Si tu formulario diálogo está basado en una tabla o consulta que contenga los mismos datos de tu formulario, ya te mostrará datos del primer formulario si fuerzas el guardado de los datos y lo abres en ese registro :

DoCmd. RunCommand AcCmdSaveRecord

 DoCmd. OpenForm "nombreFormDialogo",,, "ID=" & Me.ID,, acDialog

Si tu formulario diálogo fuera independiente, puedes "copiar" los valores en el evento "al cargar", con:

Me.nombreControlFormDialogo=Forms("NombreFormInicial").nombreControlFormInicial

Y para tu desplegable, independientemente de cómo sea el formulario, puede coger los datos de la tabla que quieras, o un listado propio, solo has de modificar su propiedad "Origen de la fila" en sus propiedades -> pestaña Datos

En el caso del FormDialogo independiente, ¿cómo determino los campos que quiero que cargue, "copiándolos"? Muchas gracias, Svein!

Efectivamente, pero ten en cuenta que lo tienes que hacer en el evento "Al cargar" del formulario diálogo, algo así:

Me.nombreControlFormDialogo01=Forms("NombreFormInicial").nombreControlFormInicial01

Me.nombreControlFormDialogo02=Forms("NombreFormInicial").nombreControlFormInicial02

...

Y así con todos los que quieras

Probaré a ver qué sucede: como soy una bestia, ¿qué debe ir en lugar de "nombreControlFormInicial02"? =)

Pues el nombre que le hayas dado al cuadro de texto del formulario inicial que quieras "copiar"... XD

Respuesta

Escribiendo código VBA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas