Access - Como hacer un código correlativo por tipo y año

 
Vista:

Como hacer un código correlativo por tipo y año

Publicado por Rdobil (1 intervención) el 25/10/2021 19:55:38
Hola compañeros:

Deseo hacer un código correlativo por tipo de contrato y año. Es decir, que cada tipo de contrato tenga un numero al otro tipo de contrato y que a su vez, estén subdivididos por años.

Para los contratos de obras pondremos en el código OB, para los de servicios SE y para los de suministros SU.

El código resultante será de este tipo: OB/01/21 . Donde OB será el tipo de contrato, 01 el numero correspondiente al contrato de obras respectivo y 21 el año del contrato.

La tabla de las base de datos la llamaremos 'tabla' y tendremos cuatro campos en la base de datos. Por un lado, la fecha de entrada del contrato, con el campo fecha_entrada, Para el tipo de tengo un cuadro combinado con los tres tipos de contratos, el cual se guarda en campo tipo. Cada numero de contrato independiente lo guardo en el campo 'numero' y el año de de contrato en el campo 'año'. Para el código correlativo completo lo guardo en el campo 'expediente'. Las iniciales del codigo las meto en el campo 'codigo_bi'

Primero selecciono una fecha cualquiera del contrato y seguidamente, elijo el tipo de contrato. Cuando actualizo el cuadro combinado tipo se desencadena la acción de generar el código correlativo.

Para ello e introducido el siguiente codigo:

Private Sub tipo_AfterUpdate()

Dim c_año As String
Dim txtexpediente As String


If tipo = "Obras" Then
Me.tipo_bi = "OB"
ElseIf tipo = "Servicios" Then
Me.tipo_bi.= "SE"
Else
Me.tipo_bi = "SU"
End If


c_año = Year(Me.fecha_entrada)
Me.año.Value = Right(CStr(c_año), 2)


Me.numero = Nz(DLast("numero", "tabla_bi", "right(expediente,2)=" & c_año & "and mid(expediente,1,2)" = [tipo_bi]), 0) + 1

If [numero] < 10 Then
Me.expediente = [tipo_bi] & "/" & "0" & [numero] & "/" & [año]
Else
Me.expediente = [tipo_bi] & "/" & [numero] & "/" & [año]

End If

End Sub


Muchas gracias por vuestra colaboracion
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