Clave primaria alfanumérica, secuencias y con reinicio anual

Estoy haciendo una base de datos donde registro expedientes. La tabla se llama Expedientes y la clave es alfanumérica. Cuando lleno mi formulario la clave se asigna dependiendo de un cuadro combinado (con valores 2012,2013,2014,2015, CONT) llamado Nomb y el siguiente código:

Private Sub Nomb_AfterUpdate()

Dim a As String

If Not Me.NewRecord Then Exit Sub
a = Me.Nomb.Value
If Not Me.NewRecord Then Exit Sub
Me.Expediente = a & Format(Nz(DMax("Val(Mid(Expediente,5))", "Expedientes", "Val(Left(Expediente,4))='" & a & "'"), 0) + 1, "0000")

End Sub

Con esto, lo que he logrado es que en Nomb pongo el año y los últimos 4 dígitos van siguiendo la secuencia del año correspondiente, el problema es que necesito que además de los años pueda poner un prefijo con letras por ejemplo, tengo claves 20120001, 20120002, 20130001, CONT0001, CONT0002 y con el código que tengo al momento de escribir en Nomb el prefijo CONT siempre me escribe el CONT0001, no logro que avance esa secuencia. ¿Tendrán alguna idea para solucionarlo?

1 Respuesta

Respuesta
3

Así funciona perfectamente:

Private Sub Nomb_AfterUpdate()
Dim a As String
If Not Me.NewRecord Then Exit Sub
a = Me.Nomb.Value
Me.Expediente = a & Format(Nz(DMax("Right(Expediente, 4)", "Expedientes", "Left(Expediente,4)='" & a & "'"), 0) + 1, "0000")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas