Recuperar valor de un subformulario

Me estoy comiendo bastante la cabeza con este tema y necesito vuestra ayuda, a ver si puedo seguir adelante con ello. Os comento...
Tengo un formulario (FacturasDelegaciones), que coge los campos de la tabla Facturas, que se utilizara para introducir los datos de unas facturas, y dentro de este formulario hay un campo que es un cuadro combinado en el que introducimos el NIF/CIF del Proveedor, seleccionándolo mediante una consulta a la tabla Proveedores. Si este NIF no existiese, he creado un rutina para agregar uno nuevo. El caso es que al seleccionar el NIF del Proveedor, en un subformulario (a partir de la tabla Proveedores) hago que me aparezcan los datos de ese Proveedor: Nombre, Forma de pago habitual y CC. Si cambiase el NIF en el proveedor por otro, los datos del subformulario lógicamente me mostrarían los del proveedor elegido ahora. Hasta aquí todo bien.
Lo que quiero hacer es que, una vez que me muestra el subformulario los datos de pago del proveedor (forma de pago y cc) pueda, mediante un botón o automáticamente (creo que mejor botón), recuperarlos en dos campos que tengo en el formulario, que serían la forma de pago y cc para esa factura que estoy metiendo. Lógicamente, puede ocurrir que esa factura no se pague con la forma de pago habitual y el usuario pueda poner otros datos diferentes en los campos forma de pago y cc del formulario. ¿Cómo podría programar esto?
Por otro lado, puede ocurrir que al seleccionar un NIF de un proveedor, el nombre si esté pero la forma de pago y cc habituales no se hayan introducido nunca, con lo que subformulario mostrará en blanco dichos campos. ¿Sería posible hacer el paso inverso a lo anterior? Es decir, el usuario introduce los datos en el formulario y mediante un botón hace que se graben en los campos del subformulario, de manera que se queden guardados para futuras consultas...
Espero haberme explicado bien... Es algo complicado, je je.
1

1 respuesta

Respuesta
1
En VB la manera de capturar datos es la siguiente
NombreControl.value
Dim NumeroF, NumeroCC as string
NumeroF.value=Textofactura.value
Numerocc.value=Textofactura.value
si se trata de cuadros de texto
NumeroF.Caption=Textofactura.Caption
Muchas gracias por responder ;)
Pero sigo teniendo algunas dudas... Dónde coloco el código VB, ¿en el formulario o en el subformulario? Si es en el formulario, ¿cómo hago referencia a los campos del subformulario? Nombresubformulario!TextoFactura. ¿Caption?
Muchas gracias!
Da lo mismo donde pongas el vb, Si lo haces en el formulario principal o en el sub, lo que tienes que tebner claro es la ruta donde está el dato a capturar. Si lo hacemos desde el formulario principal con solo que pongas
NumeroF.Caption=Textofactura.Caption   te sirve
Pero si el dato a capturar esta en el sub
Un ejemplo de un formulario que pone datos en otro formulario
If xVacio > 0 Then
DoCmd.OpenForm "GraficaIII"  'Abrimos el formulario
Forms![GraficaIII]![lblAnter].Value = lbl33.Caption ' le pasamos el dato al formulario abierto
Else
End If
Si ves q te lias escribeme q campo quieres copiar y a donde lo vas a pegar, comentame como está estructurado tu form y subform
Pues me estoy liando un poco, je je... Si no te importa te pongo como lo tengo estructurado, a ver si me lo puedes aclarar.
Tengo un formulario de nombre FacturaDelegaciones, que contiene dentro un subformulario de nombre SubFormProveedor. Cuando escribo un NIF de un proveedor en el campo NIF del formulario, el subformulario me muestra los datos de ese proveedor (tengo una tabla Proveedor que está relacionada con la tabla Facturas). Estos datos que muestra en el subformulario son los siguientes campos: NIF, NombreProveedor, FormaDePago y CC. Lo que intento hacer es que una vez escriba el NIF en el formulario, y el subformulario muestre los valores correspondientes a ese NIF, automáticamente me vuelque los datos de los campos FormaDePago y CC del subformulario a los campos FormaDePago y CC del Formulario (estos son campos pertenecientes a la tabla Facturas)... o quizá mejor mediante un botón, a elección del usuario, porque a lo mejor quiere usar otros datos de facturación distintos a los habituales para ese momento. Creo que la mejor opción sería poner un botón que pasase los datos, así el usuario puede elegir si usarlo o no usarlo, en función de las necesidades.
Muchas gracias por antelación, espero haber sido claro y no haberte liado con mi explicación.
Un saludo!
Ok, según comentas lo que quieres es pasar datos del sub al formulario, es lo mismo que te comentaba anteriormente. Para no liarte más pones un botón en el subform que diga
&Subir datos . 
creas un evento en Al hacer click
forms!FacturaDelegaciones!FormaDePago1 = FormadePago.value
forms!FacturaDelegaciones!CC1 = CC.value
Con esto te funciona sin dudas, si no te actualiza, presiona la tecla F9 un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas