Como controlar datos en un formulario

Tengo una consulta llamada CONSULTA ARTÍCULOS con varios campos entre ellos EXISTENCIAS, y un formulario de ventas basado en una consulta llamada VENTA DIRECTA con un campo, entre otros, que se llama UNIDADES. ¿Cómo podría conseguir que si en este formulario intento vender una cantidad superior a la que figura en el campo EXISTENCIAS me de un aviso y no me permita hacer la venta?.

1 Respuesta

Respuesta
1

Luis Miguel: En el Eento antes de Actualizar de ese control que citas UNIDADES, busca la Existencia que tienes en la Consulta de articulos, y si es menor que la cantidad que tienes que te avise o que deshaga o ...

Algo así:

Dim Exist As Double

Exist = DLookUp("Existencias","ARTÍCULOS", "IdArticulo = " & Me.IdArticulo)

(Id Articulo es el identificador que tu tengas en la consulta y en el Formulario, que pueden llamarse diferentes)

If Exist > Me.UNIDADES Then

'Aquí el código que quieras para hacer algo ejemplo

Me. Unidades. Undo

Else

'Aquí otro código

End If

Si te comento que ignoro la causa de que me salga sugerida ésta pregunta, porque hace mucho que contesto por falta de tiempo. Un saludo >> Jacinto

Gracias por tu ayuda. Podrías decirme a que te refieres cuando escribes "aquí otro código"?

Gracias por tu ayuda pero dado mi escaso nivel de programación, necesitaría que fueras un poco más detallado en tu respuesta por ejemplo donde dices "'Aquí el código que quieras para hacer algo ejemplo" y donde dices  "'Aquí otro código". Me podrías poner el código en ambos sitios?. Necesito que me muestre un mensaje advirtiendo que no hay suficientes existencias y no me deje continuar o que siga adelante si hay suficientes existencias. Gracias de nuevo y perdona mi torpeza.

Luis Miguel:
La parte de >> 'Aquí otro Código, es por si quieres hacer alguna acción si no se cumple la primera condición, pero evidentemente es opcional.
Te pongo unas líneas basandome en los Nombres que citas, pero hay una parte que ignoro, y es el IDENTIFICADOR del artículo, que he supuesto que se llama IdArticulo y que es numérico.
Si como comentas tienes poca experiencia con VBA, en éste caso concreto debes mirar el Evento BeforeUpdate y la función DLookUp, de las que hay mucha ayuda en la Red.
El código sería:

Private Sub UNIDADES_BeforeUpdate(Cancel As Integer)
Dim Exist As Double

'Busco la Existencia en la Consulta >> [Consulta Artículos]
Exist = DLookUp("EXISTENCIAS","[CONSULTA ARTÍCULOS]", "IdArticulo = " & Me.IdArticulo)

If Exist < Me.UNIDADES Then
MsgBox "La cantidad que has informado supera al Stock existente........" & vbCrLf & "Repasa la entrada e intenta de nuevo", vbCritical, "STOCK INSUFICIENTE"
DoCmd.CancelEvent
Me!UNIDADES.Undo
End If

End Sub

Un saludo >> Jacinto

¡Gracias! 

De nuevo, gracias. Funciona perfectamente. Una última cosa sin querer abusar de tu amabilidad. Es muy difícil que en el momento que me muestre el mensaje de "EXISTENCIAS INSUFICIENTES" me diga cual es la cantidad que queda realmente en almacen de ese artículo?. Algo así como: "Lo siento, no hay suficientes existencias. En almacén solo quedan X unidades".

Luis Miguel: Pon algo parecido a ésto >>

MsgBox "La cantidad que has informado supera al Stock existente de........" & Exist & " Unidades" & vbCrLf & "Repasa la entrada e intenta de nuevo", vbCritical, "STOCK INSUFICIENTE"

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas