Numeración correlativa de un campo según el año

Tengo una tabla llamada MUESTRAS con varios campos entre ellos "numeración" y "fecha"

Desearía que en el campo "numeración" se me guardara el valor como BDM/2013/0001 ... BDM/2013/0002....BDM/2013/0003....

y que con el cambio de año los 4 últimos dígitos vuelvan a iniciarse en 0001

BDM/2014/0001...BDM/2014/0002....

BDM/2015/0001...BDM/2015/0002

1 Respuesta

Respuesta
4

Imagino que el campo numeración lo generas automáticamente mediante código, y que ese código lo tendrás en el evento Al activar registro de tu formulario, o en el evento al entrar de algún campo de tu formulario.

Este código te puede servir, y lo tendrás que colocar en ele evento al activar registro de tu formulario:

Dim vAutonum As Variant, vUltimo As Variant
Dim vAño As Long
'Le damos a la var. vAño el valor del año actual
vAño = Year(Date)
'Cogemos el valor del campo ID (numeración)
vAutonum = Me.numeracion.Value
'Si vAutonum no es nulo, es porque ya hay valor en el ID, entonces salimos del procedimiento
If Not IsNull(vAutonum) Then Exit Sub
'vUltimo es igual al máximo de los 4 últimos caracteres de la derecha del campo

'numeracion y cuyo año sea igual al actual

vUltimo = Right(DMax("[numeracion]", "MUESTRAS", "Mid(numeracion, 5, 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.numeracion.Value = "BDM/" & vAño & "/" & Format(vUltimo, "0000")

Fíjate que los nombres de los campos coincidan con lso que tu tienes, pues si no te dará error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas