Access - PASAR DATO A SUBFORMULARIO

 
Vista:

PASAR DATO A SUBFORMULARIO

Publicado por susana0000 (54 intervenciones) el 25/11/2007 22:05:55
Tengo un formulario FACTURA con un subformulario ALBARANES

En el formulario FACTURA mediante un combo busco un cliente, y el subformulario muestra todos los albaranes que tiene pendientes de facturar ese cliente.
El formulario tiene un campo con el número de factura, y el subformulario también tiene un campo en el que se apunta el número de factura en que ese albarán se está facturando, y que lo lee directamente del formulario principal.
Ahora bien, ese campo SOLO SE ACUALIZA en el primer registro del subformulario (que es el que siempre está activo por defecto,) pero en el resto de registros se queda en blanco a no ser que EXPRESAMENTE pinches con el ratón en cada uno de los registros del subformulario, que entonces al irse activando de uno en uno si actualiza y lee el dato.

Seguro que hay alguna forma de no tener que pinchar uno por uno los campos, pero no encuentro la forma.

He intentado con los eventos del subformulario, al cargar, al abrir, … y nada, siempre hace lo mismo,

He añadido un cuadro de texto, en el subformulario que lea el número de factura del formulario. Ese dato sí se actualiza solo en todos los registros sin necesidad de que el registro esté activo, pero claro, a ver cómo paso ahora ese dato al campo que a mi me interesa y que es el que se guarda en la tabla.

He intentado el truquillo de crear otro cuadro y que en el evento DESPUES DE ACUTALIZAR del primero, se lo pase el valor al segundo,

Me.Texto65 = Me.Texto63

cuyo origen de datos es el campo de la tabla, y también he intentado que se lo pase en el mismo evento, directamente al campo de la tabla,

Me.[num_factura] = Me.Texto63

pero no hay forma.

Una ayuda por favor

Milll Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

RE:PASAR DATO A SUBFORMULARIO

Publicado por mi menda (1111 intervenciones) el 26/11/2007 05:52:03
Prueba de esta forma:
En la propiedad valor predeterminado del campo Factura del subformulario:
=Forms!FormsPrincipal!Factura
Sí esto no funciona, puedes probar a poner como origen de datos del subformulario una SELECT, (ya sabes pinchas los puntitos) y en el diseño de la consulta sacas los campos que necesites, y en el criterio del campo Factura:
Forms!FormPrincipal!Factura.
De todas formas es muy raro lo que te pasa ¿Como has hecho vinculación de los formularios?.
Pudiera ser que fuera mejor víncular el subformulario con el combo, que con el campo factura.

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:PASAR DATO A SUBFORMULARIO

Publicado por susana0000 (54 intervenciones) el 26/11/2007 12:29:35
Los formularios están vinculados por CLIENTE, para que el subformulario busque todos los albaranes de ese cliente. Hasta ese momento, los albaranes tienen como numero de factura Null porque no están facturados, (por eso no puedo vincularlo por Numero de factura), y lo que quiero es que en cuanto se visualicen en ese formulario, lean el valor del formulario principal.

Me sale bien, pero sólo si activo el registro del subformulario, pinchando cualquier campo.
Lo que no entiendo es que hasta que no pincho el registro este no se actualiza y no se entera de que tiene que coger el valor del formulario, mientras que el cuadro de texto, lo lee inmediatamente sin tener que decirle nada mas.

Voy a intentar lo que me dices a ver.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:PASAR DATO A SUBFORMULARIO

Publicado por susana0000 (54 intervenciones) el 26/11/2007 15:44:43
Nada, que no funciona.

Lo de la SELECT no lo he podido hacer porque el campo consulta ya lo tengo ocupado. Me explico:

La consulta del formulario filtra los albaranes NO FACTURADOS, para lo cual, en el campo num_factura de la consulta tengo puesto como condicion:

Es nulo OR Forms!FACTURAS!Num_factura
y los formularios están enlazados por cliente. Con lo cual en cuanto elijo con el combo el cliente, en el subformulario me saca los albaranes DE ESE CLIENTE, no facturados.

Si solo pongo Es nulo, en cuanto en el formulario pongo el numero de factura que les corresponde, el formulario actualiza y me los quita, por eso tengo que poner ambas cosas, que sea nulo o que sea la factura que estoy realizando.

En el subformulario he puesto en el evento AL ACTIVAR EL REGISTRO,

[num_factura_venta] = Form_VENTAS1.NUM_FRA

y también funciona a la perfección SI SOLO HAY UN REGISTRO EN EL SUBFORMULARIO, porque es el que está activo, pero cuando hay vaios, como solo se activa el primero, pues solo sale bien en el primero, y en el resto hay que ir "activando los registros", pinchando en cada uno de ellos.

Esto también me ocurre si pongo al cargar el formulario.

Si pongo como origen del contro, de num_factura_venta
= Form_VENTAS1.NUM_FRA

funciona a la perfección sin tener que hacer click con el raton en cada registro, pero entonces ya no me guarda el dato en la tabla.

Y por ultimo, con el campo añadido al formulario Texto3 cuyo origen de datos es
Form_VENTAS1.NUM_FRA

también lo lee a la perfección EN TODOS LOS REGISTROS sin necesidad de activarlos, pero NO ENCUENTRO la forma de hacer pasar este dato a otro sitio, porque he visto, que en el evento AL ACTUALIZAR, no funciona, al ser un campo calculado, se ve que no actualiza NI CUANDO ACTUALIZAS EL formulario.

aysssssssssssssss que me estoy volviendo loca con estoooooooooooooo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:PASAR DATO A SUBFORMULARIO

Publicado por mi menda (1111 intervenciones) el 27/11/2007 03:54:23
Vamos a ver Susana...
Yo no te dije que lo pusieras en el origen del control, sino, en la propiedad valor predeterminado (Ficha datos >Valor predeterminado).
Prueba así y me cuentas.

Sí no te funciona se puede hacer por medio del recordset del subformulario

Dim rs As Recordset
Set rs = Me.RecordsetClone
rs.MoveFirst
While Not rs.EOF
rs.Edit
rs!num_factura_venta = Me.Parent!NUM_FRA
rs.Update
rs.MoveNext
Wend
rs.Close
Set rs = Nothing

lo que no te puedo decir es en que evento del subformulario colocarlo, pero probado con un botón funciona.

Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:PASAR DATO A SUBFORMULARIO

Publicado por susana0000 (54 intervenciones) el 27/11/2007 14:04:34
sí, sí, ya lo se que no me dijiste eso. Probé lo de valor predeterminado y tampoco funcionó. El resto que te expliqué no era que me lo hubieras sugerido tu, sino que te contaba todo lo que habia probado desesperadamente.
Lo siento si te he confundido con mi explicación. voy a probar esto nuevo a ver.

Muchísimas gracias de verdad por todas las molestias que te estás tomando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PASAR DATO A SUBFORMULARIO

Publicado por Alf (3 intervenciones) el 31/01/2016 08:03:18
No puedo creer que me hayas ayudado tanto con una solución tan simple. He pasado días en esto, y todo era tan simple como un valor prederterminado!!! MIL GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PASAR DATO A SUBFORMULARIO

Publicado por Yolanda (18 intervenciones) el 20/02/2009 09:41:22
Hola Susana,
Estoy intentando hacer un programilla y necesito hacer una factura de varios albaranes. ¿Podrías mandarme un ejemplo?
Muchisimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar