Números consecuetivos en BD dividida

Mi consulta es como lograr números de factura consecutivos en una Base de Datos que he dividivo y que sera utilizada por varios usuarios.

Respuesta
1

No se como añades el ejercicio al número de factura, pero para conseguir un seqüencial sería tan facil como algo así

me.NFactura=Dmax("Nfactura","Facturas") + 1

Suponiendo que la tabla se llame Facturas y el número de factura NFactura.

Te aconsejo que el nuevo número de factura no lo obtengas hasta el momento de grabar el registro, ya que en caso contrario otro usuario puede duplicar el número.

Secuencial, perdón.

Hola, gracias por la respuesta, El numero de factura, de la tabla facturas, lo obtengo en el evento al activar registro, tal como tu lo mencionas. Y en el evento a abrir coloco la siguiente instrucción DoCmd.GoToRecord,, acNewRec, para que me abra el formulario con un nuevo registro

El problema en un entorno multiusuario es que las funciones como Dlookup, Dmáx, etc. inspeccionan las tablas con los registros ya guardados. Por ello, si tienes dos usuarios que estan creando facturas y en las dos máquinas ejecutan el DMáx, van a obtener el mismo número de factura y ello será un problema.

Para evitarlo tienes dos soluciones:

1) Al crear el nuevo registro, calculas el número de factura con el DMáx y a continuación guardas el registro (así este número ya estará ocupado). Luego editas el resto del registro y vuelves a guardarlo o pasas a un registro nuevo, lo que te generará el guardado del anterior.

2) Editas el nuevo registro con toda la información e inmediatamente antes de guardar calculas el número de factura.

No se si me he explicado muy bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas