Campo que contenga fecha y contador de registros

a todos/as,

Tengo el siguiente problema: me gustaría que mi formulario de Access 2013 tuviese un campo "código etiqueta" que se complete automáticamente con la fecha del registro (existe un campo "fecha" en el formulario) y un contador numérico correlativo...

Es decir, la mascara de ese campo "código etiqueta" debería ser 01062016-0001 para el primer registro de la base de datos, y así sucesivamente 01062016-0002.

Si pudiese ser, que ese contador volviese a 0000 con el cambio de año.

1 Respuesta

Respuesta
1

Te he adaptado por simplicidad un Código Original de Neckkito, que es el que sigue.

Public Sub GeneraEtiqueta()
'Código Original de Neckkito  >> http://siliconproject.com.ar/neckkito/
Dim vUltimo As Variant
Dim vAño As Integer
Dim VMes As Variant
Dim VDia As Variant
'Le damos a la variable vAño el valor del año actual
vAño = Year(Date)
VMes = Format(Month(Date),”00”)
VDia = Format(Day(Date),”00”)
'vUltimo esel máximo de los 4 últimos caracteres de la derecha del campo Etiqueta y cuyo año sea igual al actual
vUltimo = Right(DMax("[Etiqueta]", "TblTuTabla", "Mid(Etiqueta, 10, 4)=" & vAño), 4)
'Si vUltimo es nulo, es porque no hay ningún ID, entonces le damos valor 0
If IsNull(vUltimo) Then
        vUltimo = 0
End If
'Sumamos 1 al valor anterior
vUltimo = vUltimo + 1
Me.Etiqueta.Value = VDia & VMes & vAño & "-" & Format(vUltimo, "0000")
‘Y si quieres “Visualizar y/o guardar solo el Número
‘Me.TuNombreDeCampo = vUltimo
End Sub

Los nombres de los Controles, Campos y la Tabla los adaptas a los tuyos.

Si quieres que después en un Informe o donde sea ese Código te quede ordenado sería mejor: >>

Me.Etiqueta.Value = VAño & VMes & vDia & "-" & Format(vUltimo, "0000")

Y te quedaría >> 20160121-0001, 20160122-0002, 20170101-0001 etc.

Mis saludos>> Jacinto

¡Gracias Jacinto!

Lo estudiaré en los próximos días y le escribiré en cualquier caso para verificarle que está todo correcto.

Agradeciéndole su tiempo, un cordial saludo. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas