Como generar un numero consecutivo para Facturar.

Espero me puedan colaborar, necesito generar un reporte a partir de un Query, como puedo yo generar un numero consecutivo (Me sirve para el numero de factura) y cuando vuelva a generar este informe (Facturar) seguir con el consecutivo anterior + 1 .
Este proceso se repetiría cada vez que yo facture (Mensualmente) tomando el número anterior.

1 respuesta

Respuesta
2
Para saber el ultimo numero de factura utilizado podemos utilizar una función de dominio que nos la devuelva:
Me!NumFactura = DMax("NumFactura", "tblFacturas")
Para incrementarlo le sumamos 1
Me!NumFactura = DMax("NumFactura", "tblFacturas") + 1
Pero debemos controlar que exista alguno... evaluando el nulo:
Me!NumFactura = Nz(DMax("NumFactura", "tblFacturas"), 0) + 1
Al mismo tiempo deberemos utilizar ese código ena algún momento. Yo utilizo el evento Después de actualizar del primer control que deba rellenarse obligatoriamente. Por ejemplo el AfterUpdate del IdCliente.
Private Sub IdCliente_AfterUpdate()
  Me!NumFactura = Nz(DMax("NumFactura", "tblFacturas"), 0) + 1
End Sub
Pero también debo controlar que estemos en un nuevo registro, ya que podría estar editando algo:
Private Sub IdCliente_AfterUpdate()
  If Me.NewRecord Then
    Me!NumFactura = Nz(DMax("NumFactura", "tblFacturas"), 0) + 1
  End If
End Sub
Finalmente también debo controlar que el AfterUpdate de IdCliente sea para que exista un valor:
Private Sub IdCliente_AfterUpdate()
  If Me.NewRecord And Not IsNull(Me!IdCliente) Then
    Me!NumFactura = Nz(DMax("NumFactura", "tblFacturas"), 0) + 1
  End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas