Access - Código para el siguiente formato: fecha/consecutivo

 
Vista:
sin imagen de perfil

Código para el siguiente formato: fecha/consecutivo

Publicado por Yenier (23 intervenciones) el 11/11/2022 20:10:21
Hola a todos, agradecerles por el tiempo q puedan dedicar ayudarme. Tengo una tienda y he implementado un sistema en access de ventas pero quisiera q las facturas su identificador tuviera el siguiente formato; fecha/consecutivo. Ejemplo la primera factura de hoy tendría el siguiente código o número: 11112022/001 y la segunda 11112022/002 y así sucesivamente, al día siguiente es decir mañana sería entonces 12112022/001 y la siguiente 12112022/002 y así sucesivamente. Llevo poco programando en access y visual basic no sé cómo hacerlo. Espero me puedan ayudar si es posible lograr esa estructura. saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Código para el siguiente formato: fecha/consecutivo

Publicado por Anonimo (3316 intervenciones) el 12/11/2022 10:40:58
La teoría está ampliamente explicada en este y otros foros bajo el título de 'falsos autonuméricos', en ellos se explica cómo se crean paso a paso y luego están los que aplican métodos alternativos en varios pasos (para conseguir el mismo resultado).

La parte que define al día se logra con la función FORMAT:

1
2
?"Hoy =>> " & Date, "Codificado =>> " & Format (Date, "ddmmyyyy")
Hoy =>> 12/11/2022          Codificado =>> 12112022

El correlativo (los tres últimos caracteres) se obtienen así:

1
2
3
'Para un dato tal como 12112022/002
? "Los tres ultimos caracteres =>> " & Mid("12112022/002",10,3)
Los tres ultimos caracteres =>> 002

En una tabla de nombre Facturas y para el campo de nombre FACTURA, teniendo en cuenta que pueda ser la primera del día y desconociendo cuantas se han generado en ese día, la siguiente se calcula así:

1
Format(Date, "ddmmyyyy\\") & Format(Nz(DMax("Val(Mid(factura, 10, 3))", "Facturas", Left(Factura, 8) = Format(Date, "ddmmyyyy")), 0) + 1, "000")

En el formulario utilizado para generar las facturas se le suele asignar el numero asi (condicionado a que es un nuevo registro)

1
2
3
Private Sub Form_Current()
If Me.NewRecord Then Me.Factura = Format(Date, "ddmmyyyy\/") & Format(Nz(DMax("Val(Mid(factura, 10, 3))", "Facturas", Left(Factura, 8) = Format(Date, "ddmmyyyy")), 0) + 1, "000")
End Sub

Reitero que hay amplia información sobre como generar series correlativas para cualquier necesidad, solo hay que tener claro cuantas partes la componen, así como cuales son constantes y cuales variables (aquí la única constante es "/", tanto la fecha y el consecutivo son datos variables (y se pueden añadir más, algunos necesitan series).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Código para el siguiente formato: fecha/consecutivo

Publicado por Yenier (23 intervenciones) el 12/11/2022 20:06:43
Muchísimas gracias por su atención, en cuanto lo implemente le hago saber!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar