Base de datos en access97

Tengo que crear una base de datos en access 97, ya están listas las tablas y formularios, incluso cree una consulta que me permite por medio de un botón en el formulario calcular el costo de una compra más impuestos y varias consultas más en sql.
Pero tengo que determinar el costo de venta de los productos, esto es con el método Fifo, que dice que lo primero en entrar es lo primero en salir, a modo de ejemplo si compro 1000 unidades a 300 pesos, luego otras 500 a 350 y luego vendo 1200 unidades, me debería dar como resultado el costo de ventas con el siguiente detalle 1000 a 300 = 300.000 y docientas a 350 = 70.000, costo total de la venta 370000.
Como puedo hacer esto en Access. Si me ayudan les debo mi vida, gracias

1 respuesta

Respuesta
1
Puedes crear una tabla que registre los siguientes valores:
[Articulo]
[Almacen]
[Metodo]
[Saldo]
[PrecioAlm]
[Importe]
En ella vas registrando los datos según se producen movimientos.
En tu ejemplo, registrarías un movimiento cuando compras 1000 Unidades a 300 Pesos, a continuación modificarías el registro cuando haces el movimiento de las 500 unidades de compra, dejando este como:
[Saldo]=1500
[Precio]=350
[Importe]=475000
El siguiente movimiento, el de ventas, dejaria el registro así:
[Saldo]=300
[Precio]=350
[Importe]=105000
Es decir, normalmente, siempre queda la valoración, a precio de la ultima mercancía comprada.
Por lo tanto, las ventas solo afectan al saldo, mientras que las compras, y los movimientos de almacen, son los que afectan al precio de coste de las mercancías.
Gracias de todas formas, pero en mi caso necesito la valoración de la primera compra hasta que esta tenga saldo 0, una vez que esto pase puedo tomar la segunda valoración por la compra:
Ciclo interactivo
si saldo_disponible >= a unidades_venta
costo_venta = costo_de_articulo;
saldo_disponible -= unidades_venta;
control ++;
si no;
costo_tmp_venta = costo_de_articulo;
saldo_disponible = 0;
Más meno así igual falta código, pero me refiero que el método fifo que tengo que emplear dice que lo primero en entrar es lo primero en salir...
Como puede hacer esto en el modulo Visual basic de access, como llamo a una tabla y a sus campos,
como declaro las variables, se que se puede emplear if, while, for, no difiern mucho de C.
Te agradecería me ayudes
Para abrir una tabla:
Dim DB As Database
Set DB = CurrentDB()
Dim Rec As Recordset
Set Rec = DB.OpenRecordset("NombreTabla")
Este es un método basado en DAO y la base de datos activa, también puedes utilizar otros métodos basados en ADO / ODBC, etc.
Si quieres localizar registros concretos puedes utilizar una sentencia sql, declarando una variable de tipo string.
Dim sql as string
sql="SELECT * FROM [NombreTabla]"
sql=sql & " WHERE [NombreTabla].[Campo1]=Criteriodebusqueda
Y en lugar de abrir el recordset con la tabla, lo puedes abrir con el sql.
Una vez abierto el registro puedes añadir datos:
Rec. Addnew
Editar datos:
Rec. Edit
Y al terminar actualizar:
Rec.Update
Y Cerrar el recordset:
Rec. Close
Espero que esto te sirva para el manejo de registros de las tablas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas