Bd

Buenas! Tengo una base de datos en access y me gustaría incluir una función( en un modulo de Visual Basic) que me calculara, a través de seleccionar varios registros de las tablas, un resultado.
Me gustaría saber como puedo acceder desde el modulo a los registros de una tabla, de tal forma que la función me recorriera todos los registros de un campo y a la vez pudiera operar con ellos.
Aunque no se si es posible, adjunto un pequeño ejemplo:
Tengo :
Tabla Productos : id. Producto, producto, unidad embalaje, ...
Tabla Pedidos : id . Producto, cantidad,...
Tabla Cajas : id. Caja, tamaño caja,...
Quisiera elijir por cada producto, de la tabla Pedidos, su cantidad y dividirlo por la unidad de embalaje de ese producto, de la Tabla Pedidos. Y según el resultado escoger una caja o otra, de la Tabla Cajas.
Muchas gracias
Halybop

1 Respuesta

Respuesta
1
A ver si vamos encaminando la respuesta.
Mira, de momento tengo esto:
SELECT A.Id, MIN([Cajas].[Tamanyo])
FROM (
SELECT [Pedidos].[Id], [Pedidos].[Cantidad]/[Productos].[Unidad] AS ratio
FROM Pedidos, Productos
WHERE [Pedidos].[Id] = [Productos].[Id]) AS A,
[Cajas]
WHERE [Cajas].[Tamanyo] > A.ratio
GROUP BY [A].[Id]
Los Id hacen referencia al Id del producto, siguiendo tus primeras indicaciones. Esto devuelve para cada producto de la tabla Productos qué caja es la más pequeña para que quepa la cantidad de pedidos.
Según tu segundo comentario, aparece también el albarán, se puede enlazar fácilmente, pero me deberías comentar como se relaciona con las tablas que ya tenemos.
Buenas! Gracias por contestar. Te aclaro las qüestiones del otro día.
Realmente tengo una base de datos en access . Esta base de datos tiene varias tablas
(Productos, clientes, tipos de cajas, productos por albarán, pedidos, ...). Entonces según los productos que hay en
el albarán numero:1, por ejemplo, los debo ir metiendo en diferentes cajas según el tamaño del producto, el tamaño de la caja y la unidad de embalaje del producto.
Un caso práctico sería:
Albarán #1 : 1 paquete de pañales Prenatal, con un volumen x.
2 botellas de lejía, con un volumen x'.
1 monitor toshiba CRT-330hx, con un volumen x''
Tipos de cajas : caja 1, con un volumen y .
Caja 2, con un volumen y'.
Al hacer una consulta en el modulo de access, donde le paso el numero de albarán que quiero, me devuelve una tabla con todos los productos de ese albarán.
Una vez tengo la tabla me gustaría recorrer todos los registros, uno a uno, e ir seleccionando la caja que mejor se adapte a las medidas e embalaje del producto.
Caso práctico (todo programado en un modulo de access con visual básic):
Realizo una consulta, donde pido que se me devuelva todos los productos del albarán 1. La consulta me devuelve una tabla con 3 productos. Ahora quiero seleccionar cada producto
uno a uno. Seleccionamos registro 1 de la tabla, lo guardamos en una variable y operamos esa variable para ver que caja se adecua mejor a nuestro producto, seleccionamos producto 2 y ..., seleccionamos producto 3 y ...
¿No se si se recorre los registros de la tabla con cursor o hay otra forma? He buscado
información sobre Cursores y sólo he obtenido el código en SQL. Si fuese posible utilizar un cursor podrías explicarme el código en visual básic
ha incluir en el módulo de access. Si crees conveniente realizar este tipo de programa de otra forma, no dudes en aconsejarme.
Muchas Gracias
Hasta pronto
Halybop
Vamos a ver si puedo ayudarte ...
Primero me gustaría consultarte un par de cosas:
- Según tu explicación, si tenemos el producto de ID 1 que tiene como unidad de embalaje 5, y hay un pedido de 14 unidades, según tu división nos daría un valor de 2'8. Mi pregunta es si ese es el valor con el que deberemos ir a la tabla Cajas para buscar el ID de la caja más pequeña en la que quepa ese producto.
- La segunda cuestión (y más corta .. :-)) Tal y como lo he entendido, se puede realizar una consulta que te diga para cada ID de producto que ID de caja deberías coger. ¿Es esto lo que pides, o deseas ayuda en como moverte por el resultado con Visual Basic?
Hasta pronto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas