Como hacer que access me indique que he llegado al importe máximo de un cliente

Estoy haciendo una base de datos donde hago facturas de clientes pero necesito saber como puedo hacer que en el formulario de facturas al introducir un cliente para dar de alta una factura me indique si he llegado a un importe máximo por ejemplo 3.000 euros de ese cliente y no me deje meter mas facturas al mismo cliente.

1 Respuesta

Respuesta
1

Lo puedes hacer de muchas formas. Vamos a suponer, que en la tabla Facturas(y por tanto en el formulario del mismo nombre) tienes un campo NombreCliente. En el formulario, en las propiedades del cuadro de texto nombrecliente, en Eventos-Antes de actualizar crea un procedimiento de evento y entre Private Sub y End sub pon

If dsum("totalfactura","facturas","nombrecliente='" & me.nombrecliente & "'")>=3000 then

Msgbox"Este cliente ya ha superado la cantidad", vbokonly,"Lo siento, otro día será"

Docmd. Cancelevent

end if

Pero personalmente lo pondría como

dim f as single

f=Dsum("totalfactura","facturas","nombrecliente='" & me.nombrecliente & "'")

Msgbox"A este cliente aun le queda un saldo de "&3000-f

Por si quisieras, en la última factura apurar hasta el último céntimo

En fin, si pudieras concretar algo más

Buenas noches Julián, ante todo muchas gracias por tu respuesta, pero verás, he utilizado la segunda instrucción (como tu personalmente lo harías) pero me da un error en la ultima línea: 

Error de compilación, error de sintaxis.

Por favor serías tan amable de indicarme que es lo que falla? por que como estarás pensando estoy bastante pez en programación en Access.

Muchas Gracias de antemano.

Supongamos que tengo una tabla Ventas, en la que el Idcliente=1 corresponde a Pepe Lopez

Me voy al formulario Ventas, a un registro nuevo, en este caso es el 3, y cuando voy a elegir a Pepe López

En el mismo momento que lo elijo

el código del evento Antes de actualizar del combinado Idcliente es

Private Sub Idcliente_BeforeUpdate(Cancel As Integer)
Dim f As Single
f = DSum("totalfactura", "ventas", "idcliente=" & Me.Idcliente & "")
MsgBox "Este cliente todavía tiene un saldo de " & 3000 - f, vbOKOnly + vbInformation, "Aprovecha para venderle"
End Sub

En este caso, como Idcliente es numérico se pone como

..............=" & me.idcliente & "")

Si el criterio fuera el de un campo texto sería

.................= '" & me.nombrecliente & "'"

Es decir, abre apóstrofe comillas y cierra comillas apostrofe comillas

También se podría poner que a medida que vas poniendo productos te vaya diciendo que "saldo" le queda, etc.

De nuevo muchas gracias por tu respuesta, lo dejo por imposible, no consigo que me haga lo que tu tienes, muchas gracias por tu tiempo y atención

Pero si es muy sencillo, si quieres, repito, si quieres, haz una copia de tu base con dos o tres registros inventados y me la envías a [email protected].

Si lo haces, en el asunto del mensaje pon tu alias Juan Pedro, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas