Estoy con una base de datos, en la cual he creado un formulario pedidos, y un subformulario órdenes de producción. El csao es que lo tengo relacionado con el campo pedidos las dos partes y ahora necesito que desde el formulario me copie al subformulario un campo llamado productos, para tenerlo también en la orden de producción y trabajar con ese dato. No sé si me he explicado bien, haber si me puedes echar una mano.
1 respuesta
Respuesta de Neckkito Nck
1
1
Neckkito Nck, Access... ser o no ser. Esa es la cuestión
El problemilla mayor que veo en tu consulta es saber exactamente sobre qué evento operar para asignar el valor. Dado que desconozco la estructura de tu formulario-subformulario te lo voy a explicar a través de un ejemplo. Imaginemos que el campo del formulario (al que llamo "Pedidos") que recoge el valor del producto se llama [productos], y que el campo del subformulario (al que llamo "ordenes de producción") que debe recoger el valor del producto se llama [subProductos]. Y que en este mismo subformulario hay otro campo, que llamo [campoX], que tienes que rellenar antes que el campo [subProductos]. ¿Claro hasta aquí? El proceso sería el siguiente: 1.- Sacas las propiedades del campo [subProductos] y le dices que NO sea punto de tabulación (Pestaña Otras->Punto de tabulación: NO) 2.- Sacas las propiedades del campo [campoX], te vas a la pestaña eventos->Después de actualizar. Te pones en la parte blanca que hay a su derecha y te aparecerá un botón con puntos suspensivos. Haces click sobre él y en la ventana que te sale le tienes que decir que quieres generar código. 3.- Se te abrirá el VBE, con dos líneas por defecto (Private Sub... y End Sub). Entre esas líneas (deja lo que te salga por defecto) tienes que escribir lo siguiente: --- Private Sub... Dim vProd As Variant vProd = Forms!Pedidos.Productos.Value If IsNull(vProd) Then MsgBox "No ha introducido ningún producto" Exit Sub End If Forms!Pedidos.[ordenes de produccion].Form.subProductos.Value = vProd End Sub --- Si tus campos tienen espacios entre sus nombres debes ponerlos entre corchetes (como en el caso de [ordenes de produccion]. Ahora, cada vez que rellenes el campo [campoX] automáticamente se te rellenará el campo [subProductos]. Espero que, con lo que te he explicado, puedas adaptar el código a tus necesidades. Ya me dirás cómo te ha ido.
Al final estoy montando algo más complicado, y ahora tengo dos problemas. Te explico, tengo el formulario pedidos, cada pedido es de un único producto, por lo que no tiene líneas, en cambio por cada pedido necesitamos realizar órdenes de producción internas para fabricar el pedido, para lo cual antes lo había puesto como subformulario, y ahora lo que he hecho es poner un botón y que cuando necesito realizar una orden nueva(se hace una orden nueva cada vez que cambiamos algún lote de alguno de los productos implicados, para así controlar la trazabilidad, o si detenemos la producción y la reenprendemos semanas después), así se habré un formulario, el problema es que no consigo que se me habrá en el pedido que estoy. Por ejemplo que si estoy en el pedido 1 se me habrá la orden ya relacionada con ese pedido. Esto lo estoy intentando con un recordset, relacionando el campo numero pedidos de "pedidos" con el de órdenes de producción, pero me da que no encuentra el campo "|" no acaba de salirme, y me he hecho un lío terrible con el código Luego después en fabricación, lo que deseo también es que me copie el producto que voy a fabricar de pedidos, para no estar mirando en el pedido cada vez. Además necesito copiar de una tabla llamada productos, la composición del producto, la cual no está en pedidos, pero es interesante tenerla en la fabricación para no tener que estar buscando cada vez el artículo, esto tenía pensado que una vez haya copiado el campo de artículo del pedido, llamar a la tabla artículos de alguna forma para que me rellene el resto de campos . Saludos
Te comento que sin tener la BD delante, sin saber de qué va la historia y medio dormido que aún estoy la verdad es que no me he enterado de nada de lo que has dicho... je, je... Bromas aparte, lo que comentas realmente es muy confuso para una persona que desconoce tu BD. Si quieres hacemos una cosa: pásame tu BD (comprimida en zip) a mi correo y yo le echo un vistazo, e intentamos arreglar los problemas paso a paso (básicamente para que yo me aclare). Mi correo es [email protected] (Te enviaré confirmación de recepción. Si no recibes esa confirmación es que no me ha llegado nada) Eso sí, te pido un poco de paciencia porque tengo unos días un poco liados. Ya me dirás cosas.
Ya te la he enviado, hay campos que estoy ahora con ellos y no estaban conectados, no es ningún error, cuando tengas un rato la vemos
Te he remitido un mail. Ya me dirás.
Muchísimas gracias por la ayuda, espero poder contar contigo más adelante para esta aplicación. Lo que me comentabas que había campos desconectado era que estaba probando lo que quería en cada sitio y poniendo y quitando cosas. Un saludo y gracias por todo