Base de datos en Microsoft Access

Hola expertos, voy a la cuestión: tengo una bd en Access (claro) y una de sus tablas (Clientes) tiene la siguiente estructura: IDCliente (*), Nombre, Domicilio. Necesito:
1. Que al perder el foco del campo IDCliente controle su existencia, si este ID existe muestre un diálogo de error y luego vuelva el foco a dicho campo.
2. Que al cerrar el formulario los datos cargados en los campos NO se guarden directamente en la tabla, prefiero agregar un botón de grabar. Es decir al cerrar que se pierdan los cambios.
Desde ya agradezco vuestra atención.

1 respuesta

Respuesta
1
1º ¿Para qué vas a hacerlo en el evento Al perder el foco?. Es más lógico hacerlo en el evento Antes de actualizar. Por ejemplo, en dicho evento, crea un procedimiento de evento y entre Private Sub y End Sub escribe
If dcount("idcliente","clientes","[idcliente]=[forms]![nombre del formulario]![idcliente]")>0 then
msgbox"Ese cliente ya está en la tabla",vbokonly,"No se guardará"
docmd.cancelevent
End If
Así, cuando escribas un idcliente, si está en la tabla, y pulses Enter(o el tabulador) no te deja avanzar al siguiente cuadro de texto.
2º Suponiendo que te refieras a la misma tabla. En las propiedades del formulario, en eventos-Al cerrar crea un procedimiento de evento y escribe
docmd. runsql"delete * from clientes where [idcliente]=[forms]![nombre del formulario]![idcliente]"
Si quieres que no te aparezca el dichoso mensajito de "Va a eliminar...", antes del código anterior pon
docmd. setwarnings False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas