En un formulario de ventas en access quiero cuando teclee el campo cantidad, si el stock del producto es cero aparezca un msgv

Nuevamente estoy por aquí solicitando su ayuda y dándole las gracias de antemano. Tengo un formulario de ventas, requiero que cuando ingresé en el control cantidad, si el número está por debajo de 5, antes de cambiar al control siguiente me aparezca un mensaje de alerta, indicando bajo inventario.

Respuesta
1

Se supone que esa cifra seria el Stock restante tras descontar el valor introducido, pero en mi opinión debería obtenerse antes el Stock actual para verificar si hay suficiente para lo solicitado.
Suponiendo que se cubra el pedido actual se puede calcular si se cumple la condición.

Pero como no es lo mismo un televisor que un tornillo, no seria una mala idea el añadir un campo mas (el Stock mínimo) que dependerá del tipo de producto y del tiempo de reposición entre otros factores.

La formula para obtener el Stock actual es sencilla: la función DLookup permite obtener el valor de cualquier campo de una tabla:

Actual= Dlookup("[campo con el stock]", "[Tabla almacen]","[Codigo producto] = " & [codigo a localizar] )

Si el código es alfanumérico:

Actual= Dlookup("[campo con el stock]", "[Tabla almacen]","[Codigo producto] = '" & [codigo a localizar] & "'")

¡Gracias! Enrique por atender mi necesidad, sin embargo creo no me supe explicar bien  lo que quiero. Yo tengo un formulario de ventas quiero que al introducir en el control "cant", la cantidad de artículo que voy a vender, automáticamente si esa cantidad es menor a la existencia del producto en mi inventario me envíe un msgvox por ejemplo "intenta vender un producto que una cantidad superior al existente". En resumen quiero escribir un código en ese campo que cuando ingresé la cantidad del artículo a vender, automáticamente vaya a mi tabla inventario y verifique la cantidad en existencia y me arroje un msg

Creo que te he entendido, quizás no has entendido mi respuesta.

Lo que quieres vender (lo que te solicitan) lo conoces, pero ¿sabes lo que tienes en el almacén de ese producto en concreto?.

Si lo sabes no entiendo lo que preguntas (sabes lo que tienes, sabes lo que quieres  == ¿¿¿¿??? )

Lo que propongo es conocer lo que se tiene (si se conoces de memoria dejar de leer) si no se conoce o se tienen dudas: se consulta (es lo que hace la función que he propuesto) y ya disponemos de cuando menos dos datos para poder calcular.

Primero es calcular si se dispone de lo suficiente y de haberlo servir el pedido (no sea que venga otro y lo arrebate, que las comisiones son muy apreciadas) ya servido (en función de lo que quede) se verifica si se necesita informar de que hay que reponer o no.

Y si el programa de gestión lo permite (y es el programador el que decide, y 'su cliente' esta dispuesto a aceptarlo y pagarlo) se calcula si se alcanzo el punto de reposición y se gestiona, bien con un aviso puntual, bien añadiendo la falta en el listado de la mercancía a reponer (datos que pueden formar parte del registro de ese producto, tanto el punto de reposición que dependerá del producto, como la cantidad a reponer algo que dependerá del acuerdo con el proveedor.

Pero cada almacén es un mundo que tiene su trato especial, no es lo mismo mercancía perecedera que otra que no lo es, no es lo mismo pedir bajo demanda que vender lo que te entregan (si la actividad consiste en la venta de restos de Stock por fin de temporada).

¡Gracias! Mi stock lo tengo en la tabla de inventarios, supongamos que un cliente me pide siete bombillos,  en mi formulario en el control "cant" quiero crear un código que cuando ingresé el número 7, automáticamente busque en mi tabla inventario en el campo "existencia" y si la cantidad a vender es mayor a la cantidad de mi campo "existencia" me arroje un mensaje de alerta; bueno y si en ese mensaje de alerta me dice el inventario en "existencia", sería buenísimo, pero yo no quiero otro control o campo del stock, de antemano gracias Enrique por ayudarme y la paciencia 

Con lo que has aportado:
En cuanto seleccionas el bombillo (lo que el cliente solicita) ya se puede localizar en la tabla [Inventario] cuantos bombillos quedan en el campo [existencia]:

Antes:
Actual= Dlookup("[campo con el stock]", "[Tabla almacen]","[Codigo producto] = " & [codigo a localizar] )
Con los datos aportados:
Actual= Dlookup("[Existencia]", "[Inventario]","[Codigo] = '" & "Bombillo" & "'")

En donde pone "Bombillo" (que es el código a localizar ) se pondrá el nombre del campo (si se elige en un combo que se llama [Productos] pues será : Me.[productos]
-- si el código es texto: versión con comillas, si es un numero : versión sin ellas --
En la variable [Actual] se obtendrá la cantidad de bombillos que hay en el inventario (supongamos que 11).
.- Se teclea 7 en el control [Cant] y se compara con [Actual]-.
De esa comparación:
([Actual] >= [Cant]) ====>>>  se puede aceptar la línea de pedido y actualizar [Inventario] 
(([Actual] - [Cant]) < 5) ====>>> se envía el mensaje de estar bajo mínimos (cero incluido)

Hay variaciones de como ejecutar esos procesos, en un entorno de un solo usuario bastara con actualizar el inventario al formalizar el pedido.
Es un entorno compartido (pueden aceptar pedidos desde varios puestos al mismo tiempo) el inventario se tendrá que actualizar lo antes posible para evitar que 'el otro' también venda el mismo producto y no se puedan cumplir ambos pedidos.

2 respuestas más de otros expertos

Respuesta

Como te dice Enrique, lo mejor es que ya sepas previamente las existencias que tienes, como en la imagen, cuando eliges un producto ya te dice, en Antes, las que tienes antes de vender y en Después las que te quedan una vez vendida una cantidad.

¡Gracias! Julián pero yo no quiero crear otro campo o control porque ya tengo una tabla inventario y un campo "existencia" que se va actualizando con otro procedimiento. Lo que yo quiero esta en el ejemplo que le puse a Enrique. Y en función de lo planteado en ese ejemplo espero me puedas ayudar agradeciendo tu respuesta 

Respuesta

Tiene que ingresar el código que le exponen en el evento antes de actualizar, algo como

IF Me.cant>Actual then

    msgbox "No puede dara esta salida",vbinformation,"Le cuento"

    Cancel=True

Endif

¡Gracias! Saludos Eduardo en ese consigo que me diste no hace falta algo que es de la tabla inventario en el campo existencia que va a realizar la comparación 

Si claro por esto le indique en la respuesta que le dieron adicionará mi código, resumiendo, primero realiace el DLOOKUP () y después el IF END IF

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas