Borrar registro dentro de access por visual basic

Tu anterior respuesta me ha venido muy bien... Cuando logré entender los docmd...
Ahora tengo un problemilla:
Quiero hacer un botón de cancelar (tanto la edición como el nuevo), pero se me presenta el problema de que si el usuario me mete algún dato, me crea un registro nuevo y debe rellenar los datos requeridos.
    Puedo capturar el error y dar un mensaje de rellenarlos para guardarlo bien, pero si quiero cancelar, ¿cómo lo hago?
   Yo había pensado guardar todos los datos con datos fijos y luego moverme a ellos, quedarme con el id_autonumérico y luego borrarlo.
   Así realmente no se sumará ningún registro a la tabla
   ¿Se te ocurre cómo hacerlo? ¿Existe algún comando el vb (dentro de access) para hacerlo?

1 Respuesta

Respuesta
1
No es necesario borrar el registro.
Te doy una solución alternativa, con un botón de comando:
Entre Private Sub y End Sub
If IsNull(Cliente) Then
   If MsgBox("El campo nombre del cliente es obligatorio" & Chr(13) & "¿Desea cancelar la introducción del registro?", vbQuestion + vbYesNo, "Campos requeridos") = vbYes Then
   DoCmd.Close
   Else
   Me.Cliente.SetFocus
   End If
Else
DoCmd.Close
End If
Te explico un poco en mi caso tengo un campo requerido llamado cliente si no está relleno es decir, es nulo muesto un mensaje informando al usuario que es obligatorio y que si quiere cancelar la introducción del registro (el mensaje se puede cambiar por lo que tu quieras eso si ten encuenta que si quieres separar las lineas debes utilizar Chr, si contesta si (vbYes) cierro el formulario si no mantengo el foco en el registro.
Ten en cuenta que si utilizas Autonuméricos (¿?) Perderás el número que ha introducido automáticamente, por ejemplo, tienes 4 registros; insertas uno (sería el 5) y le cancelas, si vuelves a insertar otro será el número 6.
Hola! Muchas gracias por responder!
Se algo de visual basic y entiendo el esquema.
Según esto, haces lo mismo si cliente es null que si no, me explico:
Si cliente nulo -> entras en el 2º if y haces "DoCmd.Close"
Si cliente no nulo -> entras en else y haces "DoCmd.Close"
¿Te equivocaste o es así? ¿Docmd.close cierra el campo en edición o lo borra?
Aún así, investigaré el evento DoCmd.close en la ayuda de access y de basic 6.0 a ver que averiguo, muchas gracias
Perdona, se me olvidó...
¿Te refieres a algo como esto?
DoCmd.Close acForm, Me.name, acSaveNo
  Lo he encontrado en internet y creo que es este ejemplo
De nuevo muchas gracias!
No es eso, la traducción sería:
1º) Si el cliente es Nulo (no se ha introducido) y se presiona el botón pregunto Si el usuario quiere cancelar el registro. Si contesta Si (pulsa el botón si) cierro el formulario, si no mantengo el foco del campo para que vuelva a introducir algo.
2º) Si no es nulo y has pulsado el botón de cancelar será que quieres salir sin guardar por lo que me ahorro preguntar si te has equivocado al pulsar el botón.
RESUMIENDO: Pueden darse dos casos:
A) El control o controles tienen algún dato válido pero de todas maneras quiero cerrar el formulario.
B) El control o controles no tienen ningún dato y pregunto si te has equivocado al pulsar el botón (los usuarios somos tontos la máquina no)
Muchas gracias, me ha servido de aclaración!
En cuanto pueda lo incorporo a mi programilla! Ahora sí que lo he entendido bien!
Muchas gracias de nuevo, has sido muy amable!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas