Registro de Cheque de Clientes... Este cheque ya fue registrado

Estoy haciendo una base de datos en Access para registrar los cheques que me entregan los clientes y quiero crear una función que me lance un mensaje si cargo un cliente y luego un numero de cheque y ya existe en la base de datos... Se hacerlo solo con el numero de cheque pero lo que no se hacer es si el numero de cheque es el mismo pero lo que cambia es el cliente... Cualquier comentario o ayuda me vendría muy bien!

1 Respuesta

Respuesta
2

Pus tu mismo has puesto la solución. Antes de guardar, que no sé como lo haces, puedes poner

If dcount("*"."nombretabla","numcheque =" & me.numcheque & " and cliente='" & me.nombrecliente & "'")>=1 then

Msgbox"Ese cheque ya existe para ese cliente", vbokonly,"Señor, Señor, que cabeza"

Dcodmc. Cancelevent

else

docmd.runsql"insert into nombretabla......

end if

Si el origen de registros fuera la misma tabla sobraría lo de docmd.runsql...

Simplemente tengo una tabla llamada Registro Cheque y ahí tengo un campo con la fecha de entrega, nombre del cliente, numero de cheque y cualquier otro dato del cheque.....

Pienso en vos alta..... en el campo numero de cheque luego de perder el enfoque podría poner la función que me pasaste????

Supongamos que tengo una tabla

Y tengo un formulario, que como no has dicho nada supongo que es independiente, donde tengo tres cuadros de texto, CampoA, CampoB, CampoC. Si escribo en ellos

Y pulso el botón

Al Aceptar, el cursor se vuelve al cuadro de texto CampoC(el del número de cheque) para que lo cambies.

Por el contrario, si escribo

Cuando pulse el botón

El código es

Private Sub Comando7_Click()
If DCount("*", "registrocheques", "cliente='" & Me.CampoA & "' and numcheque=" & Me.CampoC & "") >= 1 Then
MsgBox "No puede ser, ese cheque ya existe para ese cliente", vbOKOnly, "No te lo digo más"
DoCmd.CancelEvent
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "insert into registrocheques(cliente,fecha,numcheque)values(campoa,campob,campoc)"
End If
End Sub

Si el formulario tuviera como origen de registros la propia tabla. lo podrías poner en el evento Antes de actualizar del cuadro de texto CampoC, suprimir el botón y dejarlo como

Private Sub CampoC_BeforeUpdate(Cancel As Integer)
If DCount("*", "registrocheques", "cliente='" & Me.CampoA & "' and numcheque=" & Me.CampoC & "") >= 1 Then
MsgBox "No puede ser, ese cheque ya existe para ese cliente", vbOKOnly, "No te lo digo más"
DoCmd.CancelEvent
End If
End Sub

Tal cual vos lo escribiste.... también pensé usar el evento después de actualizar.....muchísimas gracias

El evento correcto es Antes de actualizar. Si lo pones en el evento Después de actualizar, ya te lo habría guardado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas