Control de stocks con access y sql

Hola,
Veréis, tengo nociones bastante básicas de access, pero creo que para hacer lo que me planteo con una modesta ayudita podre empezar a crear la base de datos en access para gestionar estocs que me estoy planteando.
El problema en mi trabajo es que el sistema informático de gestión no nos es útil para controlar los escandallos de toda la gama de productos de un cliente en concreto. No me entretendré a contar como esta montado el sistema de gestión, pero lo cierto es que no me es útil para controlar los stocks de las piezas que llevan los productos de este cliente.
Para ello, y debido a que a final de mes me piden un listado de stocks y una valoración de los mismos, me planteo llevar los movimientos de entradas de material, salidas a cliente, y abonos mediante una base de datos access.
Tras crear y rellenar las tables, lo que quisiera es lo siguiente:
A través de un formulario de entrada de material, que se actualize la tabla de los subproductos con las cantidades recibidas.
Proveedor, subproducto, cantidad, + un campo calculado que seria el precio para el subproducto del proveedor obtenido de la tabla de subproductos multiplicado por la cantidad entrante.
Esto seria lo más sencillo en principio.
Ahora bien, por otro lado, cuando hay una salida de producto a cliente, necesito que se actualize la tabla de subproductos restando las cantidades de cada uno en función del producto final que sale.
Por ejemplo: el producto "A" lleva 4 bisagras, 3 tornillos de m6x10 y 7 arandelas de 8mm.
Esto seria, si por ejemplo envío 3 armarios al cliente, pues que se me restara de la tabla subproductos la cantidad de 3x4 bisagras + 3x3 tornillos + 3x7 arandelas.
Lo que os pido básicamente es si me podéis ayudar a enfocar la aplicación, indicándome recursos donde poder adquirir los conocimientos para los comandos sql, que si no me equivoco es lo que voy a necesitar.
Por otra parte tengo la duda de si para esto necesitaré mysql, aunque creo y espero que no, puesto que con access se pueden utilizar sentencias sql, aunque no se con que limite.
El caso es que quiero prescindir de sql server o mysql. Creo que para hacer esto no es necesario y ademas no tengo conocimientos con respecto a ambos.
También aceptare sugerencias para hacerlo de otro modo.
Tengo pensado en crear las siguientes tablas:
1. Proveedores, con los campos típicos de dirección, etc..
2.Producto: con los campos "producto"(que seria repetitivo en todos los registros), "subproducto" y "cantidad"< que seria la cantidad de subproducto que lleva cada producto.
3. Subproducto: con los campos "codigo","nombre","proveedor" y "precio", puesto que más de un proveedor puede entregar el mismo subproducto a su respectivo precio.
Creo que necesito 3 formularios: "entradas material","salidas cliente" y "abono"(que serie el proceso inverso de la salida)
4.También me interesa lógicamente guardar todos los registros de entradas y salidas en tablas para posterior consulta e informes.
Aceptaré cualquier consejo o orientación, así como recursos en donde encontrar información más específica de lo que quiero hacer, porque de momento estoy un poco perdido. Como os digo no soy un crack ni mucho menos en access, pero tengo bastante facilidad de aprendizaje y lo que necesito no puede ser demasiado complicado, pero me falta un punto de partida.
Gracias de antemano,
J.Mª.Granados

1 respuesta

Respuesta
1
Yakkal, buenas tardes.
Te paso el modelo que me parece más apropiado para lo que vos quieres hacer, dado que quieres llevar un registro de las compras y ventas. Te paso las tablas y después las relaciones, donde pongo "etc" son los campos varios que consideres necesarios pero no inhibitorios:
Tablas: TABLA (Campo)
1 ) CLIENTE (Id_Cliente, Nombre, Apellido... etc)
2 ) VENTAS (Id_Prod, Cantidad, Id_Cliente, Fecha_Venta, FC_Venta, Importe)
3 ) PRODUCTO (Id_Prod, Id_Material, Cantidad)
4 ) STOCK (Id_Material, Material, Tamaño, Cantidad)
5 ) COMPRAS (Id_Material, Id_Proveedor, FC_Compra, Cantidad, Precio_Compra)
6 ) PROVEEDORES (Id_Proveedor, Razon_Social...etc)
Relaciones (TABLA.Campo):
CLIENTES.Id_Cliente = VENTAS.Id_Clientes;
VENTAS.Id_Producto = PRODUCTO.Id_Prod;
PRODUCTO.Id_Material = STOCK.Id_Material;
STOCK.Id_Material = COMPRAS.Id_Material;
COMPRAS.Id_Proveedor = PROVEEDORES.Id_Proveedor;
De esta manera podes llevar el stock a medida que compras y vendes quedando registro de las 2 operaciones en sus respectivas tablas con nro de factura, fecha, etc.
Con respecto a la lógica de producto/material, en stock vas a ver reflejado un único id de material para cada elemento de un tamaño en particular como ser tornillos 6x10, con su cantidad disponible. El Id de producto se compone de todos los id de material. Por ejemplo:
Tabla producto:
ID_PRODUCTO     ID_MATERIAL     CANTIDAD
Ropero1 tor1 8
Ropero1 tor2 4
Ropero1 bisagra1 6
Ropero1 arandela2 8
... donde:
TABLA STOCK:
Id_material material tamaño cantidad
TOR1 TORNILLO 6'' 500
TOR2 TORNILLO 10'' 400
BISAGRA1 BISAGRA 10'' 100
Arandela2 arandela 6'' 150
Te va a servir mucho hacer el dibujo de las tablas con los nombre de los campos uno abajo del otro y las relaciones para entender el funcionamiento.
Yo antes de hacerlo en access lo haría en MySQL que es más robusto y gratuito, pero eso queda a criterio de cada uno, quizás te sea más fácil así por los formularios.
Este modelo que diseñe, esta normalizado de modo de tener una base con funcionamiento optimo. Dejo a tu criterio agregar los campos que consideres necesarios como ser los datos de los clientes o los proveedores o algún dato más en cuanto a los materiales, etc.
Si necesitas manuales de referencias, en www.lawebdelprogramador.com/cursos/ vas a encontrar desde introductorios, nivel básico y avanzados y tutoriales con casos prácticos, tanto para Access como para otros lenguajes.
Cualquier duda estoy a tu disposición y puedes volver a consultarme.
Apreciado experto,
En primer lugar quiero agradecewrle el haberse tomado el tiempo de atender tan extensa pregunta.
El caso es que tuve la suerte de dar con alguien que domina el tema de access con vba, y con su ayuda he podido solucionar el tema.
Fue fácil, ya que ademas se me dio nueva orden en el trabajo de que no hacia falta que entregara el estoc valorado, si no únicamente el estoc de las piezas, por lo cual mi compañero me sugirió que hiciera tres tablas: `productos', 'subproductos (incluye el campo "estoc"', y 'escandallos(donde hay la relación de cada producto con sus subproductos)', ya que lo único que necesito es saber el estoc de los subproductos en tiempo real.
Yo me encargue de hacer los formularios y una tabla de registro de movimientos para poder justificar los estocs si nunca me lo piden, y el me ayudo con la sentencia sql que es lo que seguro que yo solo no hubiera solucionado.
Ahora la tengo ok y funcionando, solo me hace falta pulirla con unos informes, y ya estaría.
Le agradezco nuevamente su esfuerzo para ayudarme.
Saludos y feliz 2009,
J.Mª
Yakkal, me alegra que hayas podido resolver tu problema. Que tengas un buen año y por cualquier duda quedo a tu disposición.
A pesar de que resolví el problema mediante otra vía, la solución propuesta por el experto ha sido adecuada. ¨Hay que destacar la explicación extensa y generosa que ha dado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas