Programa access para calcular un valor

Se requiere un programa que calcule el valor de el producto tipo 4, cuando el estado sea igual a 1. El valor sera igual al valor del cliente del producto 1 dividido para 5. Este programa se ejecutara desde un botón de un formulario pero debe ser igual al numero de pedido especifico, en el ejemplo solo hay pedido 1, pero a posterior existirán n numero de pedidos. Gracias

Respuesta
1

Esto no lo entiendo muy bien:

El valor sera igual al valor del cliente del producto 1 dividido para 5

Según lo entiendo yo, el resultado para el ID = 4: 12/5 = 2.4, para el ID = 12: 9/5 = 1.8, para el ID 20: 9/5 = 1.8

¿Es correcto?

Entiendo que los datos se encuentran en una tabla access,¿?

Entiendo que el formulario recorre los pedidos y con el botón consigue rellenar los valores de los productos 4.

Si todas estas premisas son así tendrías que realizar una consulta donde aparezcan los filtros de PEDIDO, CLIENTE, PRODUCTO = 4, EST = 1, de modo que te dice si requiere ser actualizado, si la respuesta es SI, formulas otra consulta sobre: PEDIDO, CLIENTE, PRODUCTO = 1, recoges el valor CANTIDAD, lo divides entre 5 y le colocas el resultado al valor del producto 4 con un insert y los mismos WHERE que en la primera consulta.

Si entiendo la alternativa, mi pregunta es no habría una manera más eficiente a través de código vb para hacerlo, imaginémonos que esa tala llegue a tener unos veinte mil registros, ¿el hacerlo con consultas no haría un proceso un poco lento?. Gracias

Entiendo que no va a actualizar todos los pedidos a la vez, aunque tengas 20000 pedidos y 100000 registros al hacer el filtro para un solo pedido la consulta va a ir rápido, marca, eso si, PEDIDO, CLIENTE y PRODUCTO como indices al crear la tabla.

Recuerda que access tiene un limitación de archivo de 2GB. Nunca va a ser tan grande para no ejecutar una consulta de este tipo más o menos rápido.

Por último indicarte que a traves de VBA también requieres hacer una consulta, cuando hacemos una petición de datos siempre es a traves de una consulta.

solo ayúdame como hago la instrucción insert, y desde que consulta la debo ejecutar una ves hechas las consultas, gracias

Guarda una consulta son SQL:

SELECT PB1.pedido, PB1.cliente, PB1.cantidad, PB1.producto
FROM PedidosB AS PB1
WHERE (((PB1.producto)=1));

PEDIDOSB es tu tabla pedidos, como tu la nombres.

Esta consulta yo la he llamado ENLACE

Ahora la siguiente consulta SQL actualizará todos los registros 4:

UPDATE PedidosB LEFT JOIN ENLACES ON (PedidosB.cliente = ENLACES.cliente) AND (PedidosB.pedido = ENLACES.pedido) SET PedidosB.cantidad = [ENLACES].[cantidad]/5
WHERE (((PedidosB.producto)=4) AND ((PedidosB.EST)=1));

Y si a esta última consulta le añades en el WHERE el pedido actual, pues solo actualizará para ese pedido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas