Pasar datos entre Formularios existiendo un Subformulario

Dispongo de un Formulario de cabecera de datos y un Subformulario con lineas de ventas estos estan conectados entre si.

Necesito desde un Formulario de Artículos pasar la Descripcion y PVP a las lineas de venta.

He utilizado esta funcion y me da error, me dice que no encuenta el subformulario: ZLINEASCLIENTESMOSTRADOR.

Si pruebo pasar directamente los datos al subformulario (fuera del formulario principal) me los pasa perfectamente pero como subformulario no lo acepta y me da el error que no lo encuenta.

He de pasar dos campos: (DescripcionArticulo y PRECIOVenta)

Private Sub Comando7_Click()
Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEASCLIENTESMOSTRADOR]![ArticuloMostra] = Forms![ZMaestroArticulosMostrador]![DescripcionArticulo]
Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEASCLIENTESMOSTRADOR]![PVPMostra] = Forms![ZMaestroArticulosMostrador]![PRECIOVenta]
DoCmd.Close
End Sub

1 respuesta

Respuesta
1

Has de indicarle que el subformulairo también es un formulario:

Private Sub Comando7_Click()
Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEASCLIENTESMOSTRADOR]!Form![ArticuloMostra] = Forms![ZMaestroArticulosMostrador]![DescripcionArticulo]

Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEASCLIENTESMOSTRADOR]!Form![PVPMostra] = Forms![ZMaestroArticulosMostrador]![PRECIOVenta]
DoCmd.Close
End Sub

Hola como estas?

He añadido los Forms y me sigue dando el error 2465, y ahora mnedice que el campo Forms no existe

esto es como ahora lo tengo:

Private Sub Comando7_Click()
Forms![ZCABECERAVENTASMOSTRADOR]!Forms![ZLINEASCLIENTESMOSTRADOR]![ArticuloMostra] = Forms![ZMaestroArticulosMostrador]![DescripcionArticulo]
Forms![ZCABECERAVENTASMOSTRADOR]!Forms![ZLINEASCLIENTESMOSTRADOR]![PVPMostra] = Forms![ZMaestroArticulosMostrador]![Precio Venta]
DoCmd.Close
End SubPrivate Sub Comando7_Click()
Forms![ZCABECERAVENTASMOSTRADOR]!Form![ZLINEASCLIENTESMOSTRADOR]![ArticuloMostra] = Forms![ZMaestroArticulosMostrador]![DescripcionArticulo]
Forms![ZCABECERAVENTASMOSTRADOR]!Form![ZLINEASCLIENTESMOSTRADOR]![PVPMostra] = Forms![ZMaestroArticulosMostrador]![Precio Venta]
DoCmd.Close
End Sub
He deducido que era Forms en vez de Form aunque los he probado de las dos maneras y me da el mismo error.

Un saludo

¿Probaste con la forma que te puse yo?

La sintaxis genérica es, para hacer referencia a un control del subformulario desde el formulario principal:

Forms!NombreFormularioPrincipal!NombreSubformulario.Form.NombreControl

o de forma resumida:

Me.NombreSubformulario.Form.NombreControl

En tu caso, según entiendo yo, con esta sentencia:

Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEASCLIENTESMOSTRADOR]!Form![ArticuloMostra] = Forms![ZMaestroArticulosMostrador]![DescripcionArticulo]

Le estás pasando al control ArticuloMostra del subformulario ZLINEASCLIENTESMOSTRADOR del formulario ZCABECERAVENTASMOSTRADOR el valor del control DescripcionArticulo del formulario ZMaestroArticulosMostrador

Hola de nuevo, mira asi es como lo he probado y me sigue diciendo con el error 2465 que no encuentra el campo ZLINEASCLIENTESMOSTRADOR al que se hace referencia en la expresion

 Me dice el campo NO el Formulario, eso es normal?

Private Sub Comando7_Click()
Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEAS CLIENTES MOSTRADOR]!Form![ArticuloMostra] = Forms![ZMaestroArticulosMostrador]![DescripcionArticulo]

Forms![ZCABECERAVENTASMOSTRADOR]![ZLINEAS CLIENTES MOSTRADOR]!Form![PVPMostra] = Forms![ZMaestroArticulosMostrador]![Precio Venta]
DoCmd.Close
End Sub

Me marca en amarillo la línea cuando le doy los parámetros

Muchas gracias por tu interés. Un saludo

Respondeme a esto:

ZCABECERAVENTASMOSTRADOR es un formulario

[ZLINEAS CLIENTES MOSTRADOR] es un subformulario dentro del formulario anterior

ArticuloMostra y PVPMostra son dos controles (cuadros de texto, imagino) del subformulario [ZLINEAS CLIENTES MOSTRADOR]

ZMaestroArticulosMostrador es otro formulario que tiene los controles DescripcionArticulo y [Precio Venta]

Esto es correcto, ¿no?

Ahora mis dudas:

1/ ¿El botón Comando7 en qué formulario está? Yo supongo que en ZMaestroArticulosMostrador

2/ Cuando pulsas el botón ¿ZCABECERAVENTASMOSTRADOR está abierto?

3/ El control que contiene el subformulario ¿realmente se llama ZLINEAS CLIENTES MOSTRADOR o tiene otro nombre?

Hpla de nuevo.

Te detallo todos los conceptos:

 ZCABECERAVENTASMOSTRADOR (Formulario Principal).

ZLINEASCLIENTESMOSTRADOR (Subformulario dentro del anterior Formulario).

Boton Comando25  esta dentro del Subformulario para llamar a los articulos: ZMaestroArticulosMostrador

Dentro del formulario: ZMaestroArticulosMostrador  esta el botón Comando7

En el evento Al hacer clik estan todos los parametros para acceso a los Nombres Artículos [DescripcionArticulo] y Precios [PVPMostra]  que son dos campos de texto de la tabla: MAESTRO ARTICULOS

El Formulario y Subformulario estan perfectamente vinculados y abiertos:

Formulario en forma: Emergente

Subformulario en forma: NO Emergente

ZMaestroArticulosMostrado:  forma Emergente

* He probado directamente desde:

 ZLINEASCLIENTESMOSTRADOR (Modificando los parametros) y me pasa perfectamente los datos a las lineas de venta pero dentro del  formulario principal no encuentra al subformulario dandome el error que te he comentado.

* Si necesitas alguna otra informacion dimelo y te la mando

Otra vez gracias por su amable atencion.

Un saludo

Hola de nuevo.

Te detallo todos los conceptos:

 ZCABECERAVENTASMOSTRADOR (Formulario Principal).

ZLINEASCLIENTESMOSTRADOR (Subformulario dentro del anterior Formulario).

Boton Comando25  esta dentro del Subformulario para llamar a los articulos: ZMaestroArticulosMostrador

Dentro del formulario: ZMaestroArticulosMostrador  esta el botón Comando7

En el evento Al hacer clik estan todos los parametros para acceso a los Nombres Artículos [DescripcionArticulo] y Precios [PVPMostra]  que son dos campos de texto de la tabla: MAESTRO ARTICULOS

El Formulario y Subformulario estan perfectamente vinculados y abiertos:

Formulario en forma: Emergente

Subformulario en forma: NO Emergente

ZMaestroArticulosMostrado:  forma Emergente

* He probado directamente desde:

 ZLINEASCLIENTESMOSTRADOR (Modificando los parametros) y me pasa perfectamente los datos a las lineas de venta pero dentro del  formulario principal no encuentra al subformulario dandome el error que te he comentado.

* Si necesitas alguna otra informacion dimelo y te la mando

Otra vez gracias por su amable atencion.

Un saludo

Hola de nuevo.

Te detallo todos los conceptos:

 ZCABECERAVENTASMOSTRADOR (Formulario Principal).

ZLINEASCLIENTESMOSTRADOR (Subformulario dentro del anterior Formulario).

Boton Comando25  esta dentro del Subformulario para llamar a los articulos: ZMaestroArticulosMostrador

Dentro del formulario: ZMaestroArticulosMostrador  esta el botón Comando7

En el evento Al hacer clik estan todos los parametros para acceso a los Nombres Artículos [DescripcionArticulo] y Precios [PVPMostra]  que son dos campos de texto de la tabla: MAESTRO ARTICULOS

El Formulario y Subformulario estan perfectamente vinculados y abiertos:

Formulario en forma: Emergente

Subformulario en forma: NO Emergente

ZMaestroArticulosMostrado:  forma Emergente

* He probado directamente desde:

 ZLINEASCLIENTESMOSTRADOR (Modificando los parametros) y me pasa perfectamente los datos a las lineas de venta pero dentro del  formulario principal no encuentra al subformulario dandome el error que te he comentado.

* Si necesitas alguna otra informacion dimelo y te la mando

Otra vez gracias por su amable atencion.

Un saludo

Hola de nuevo.

Te detallo todos los conceptos:

 ZCABECERAVENTASMOSTRADOR (Formulario Principal).

ZLINEASCLIENTESMOSTRADOR (Subformulario dentro del anterior Formulario).

Boton Comando25  esta dentro del Subformulario para llamar a los articulos: ZMaestroArticulosMostrador

Dentro del formulario: ZMaestroArticulosMostrador  esta el botón Comando7

En el evento Al hacer clik estan todos los parametros para acceso a los Nombres Artículos [DescripcionArticulo] y Precios [PVPMostra]  que son dos campos de texto de la tabla: MAESTRO ARTICULOS

El Formulario y Subformulario estan perfectamente vinculados y abiertos:

Formulario en forma: Emergente

Subformulario en forma: NO Emergente

ZMaestroArticulosMostrado:  forma Emergente

* He probado directamente desde:

 ZLINEASCLIENTESMOSTRADOR (Modificando los parametros) y me pasa perfectamente los datos a las lineas de venta pero dentro del  formulario principal no encuentra al subformulario dandome el error que te he comentado.

* Si necesitas alguna otra informacion dimelo y te la mando

Otra vez gracias por su amable atencion.

Un saludo

Por lo que comentas, este código te tendría que funcionar (es igual que el que te proponía en mi primera respuesta):

Private Sub Comando7_Click()
Forms.[ZCABECERAVENTASMOSTRADOR].[ZLINEASCLIENTESMOSTRADOR].Form.[ArticuloMostra] = Me.[DescripcionArticulo]

Forms.[ZCABECERAVENTASMOSTRADOR].[ZLINEASCLIENTESMOSTRADOR].Form.[PVPMostra] = Me.[PRECIOVenta]
DoCmd.Close
End Sub

Ahora bien, por el error que comentas, me inclino por que tienes algún control que no se llama como crees que se llama.

Te he preparado un ejemplo para que veas que la sintaxis sí es correcta. Fíjate ademas, en que en el ejemplo que te mando, el subformulario se llama LineasVentas, pero en el formulario Ventas, el control subformulario se llama DetalleVentas (y lo puse así a propósito para que veas la diferencia), y por tanto hago:

Forms.Ventas.DetalleVentas.Form.Articulo = Me.Descripcion

y no:

Forms.Ventas.LineasVentas.Form.Articulo = Me.Descripcion

Si no lo consigues, mándame una copia de tu BD sólo con los dos formulairos, el subformulario y las tablas asociados a ellos, y te lo miro.

¿Cómo hago para mandarte solo esos procesos?. ¿Creo un duplicado de la BD y en la nueva borro todos los procesos que no interesan y solo dejo los que están trabajando en esa función?

¿Cómo he de mandártela?, mándame el correo.

Un saludo

Haz una copia de la BD, dejando sólo las tablas y formularios objeto de la consulta (comprueba que funcionen), y súbela a dropbox, mega o similar, y me pones aquí el enlace de descarga

Efectivamente tenias toda la razon, preparandote la BD para enviartela me he cuenta que efectivamente tenia otro nombre en la Lineas de venta. Ha sido darle el nombre correcto y ha funcionado todo perfectamente con todos los parametros que me habias dado.

Muchisimas gracias por toda tu ayuda.

Me alegra oirlo. Ahora ya sabes que una cosa es el nombre del subformulario y otra el nombre del control que lo contiene.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas