Autonumerador para facturas en access

Respetado muy buenas tardes.

Tengo un problema con el autonumerador de access ya que cada vez que abro el formulario y activo cualquier campo inmediatamente genera un numero consecutivo lo cual estaría perfecto si dicho formulario no se necesita o bien se accedió por error o no se guardo, ya que ocupa dicho numero consecutivo y requiero que los números que asigne el sistema efectivamente los utilice con información correcta.

Para resumir, requiero que el sistema asigne numero consecutivo Únicamente a los registros a los cuales le doy guardar, ya que así aseguro que es un documento valido, si no doy guardar o salgo del formulario NO debe generar un numero consecutivo.

He buscado varias soluciones en internet y he tratado con tablas y otras cosas pero dicha ayuda es muy especifica "Usuarios adelantados", yo soy neófito en esto así que valoraría mucho su colaboración

1 Respuesta

Respuesta
2

Prueba esto. Supongamos que tienes un campo IdFactura en la tabla Facturas y lo tienes como Autonumérico. Cámbialo y ponlo como número. Luego en vista diseño del formulario, en el evento Después de insertar pon

If MsgBox("¿quiere guardar?", vbOKCancel, "aviso") = vbOK Then
IdFactura = Form.CurrentRecord
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "delete * from facturas where idlfactura is null"
Form.Requery
End If

Te explico, cuando hayas escrito algo y vayas a pasar a otro registro o vayas a cerrar el formulario te preguntará si quieres guardarlo, Si le dices sí, le pone al idfactura el valor del registro activo. Si le dices que no borra lo que hayas escrito.

Eres muy amable, una pregunta este código que me estas diciendo que registre donde debo escribirlo yo estoy trabajando con access 2016

En vista diseño del formulario, en las propiedades del formulario

Pon el cursor en el recuadro blanco, luego haz clic en el botón con flecha hacia abajo. Selecciona procedimiento de evento y luego pulsa el botón de los tres puntos(flecha arriba). Se abrirá el editor de VB y entre Private Sub y End Sub pones lo que te mandé antes.

Muchas gracias ya me va funcionando una parte ahora mi tema es cuando no quiero guardar los cambios o los registros, me salen varios cuadros de dialogo y depuración y termina cerrando el formulario, podrías decirme que hago para que me de las opciones Guardar y no guardar en el mismo cuadro de dialogo?

Ya solucione ese problema era una letra l de más en "idlfactura"

El problema que tengo ahora es que: así cancele o no quiera guardar el documento, si lo crea en la Base de datos pero no le asigna numero y al registrar un nuevo movimiento se salta la numeración y no utiliza el numero consecutivo.

Lo ideal seria que al decirle NO guardar o Cancelar eliminara los registros capturados de la base de datos y no utilice el numero consecutivo "como si no se hubiese hecho nunca nada"

Gracias!

Como puedes ver en el código, cuando le dices que cancele, lo que hace es borrar ese registro que ha "guardado" en la tabla pero sin id. Y por lo que dices me da la impresión de que has seguido dejando el campo IdFactura como Autonumérico, pese a que lo primero que dije es que lo pusieras numérico. Si tu borras el registro 3, el siguiente registro activo seguirá siendo el 3, borres lo que borres.

De todas formas si quieres, repito, si quieres, mándame un mensaje ( solo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Oswaldo, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas