Campo de numeración progresiva

¿Cómo anda todo?, Necesito saber como hacer que un campo comienzo con el valor 20 y sea progresivo por cada registro durante todo un mismo año y al siguiente año comience desde 20 nuevamente (20/2002,21/2002, ... Y luego 20/2003,21/2003)
Depaso quería saber como filtrar una consulta por dos campos dependientes de una fecha (fecha ingreso) para poder obtener un listado de registros en ese intervalo de fechas. Pero que si dejo las fechas en blanco que el listado sea de todos los registros.
Saludos y Gracias.

1 respuesta

Respuesta
1
Ya que lo que quieres no se puede realizar directamente por medio de las propiedades de los campos de la tabla, te recomiendo que en un formulario, añadas un botón de comando para añadir nuevos registros que se encargué de controlar la numeración al que le puedes asignar el siguiente código:
Private Sub NuevoNumero_Click()
Dim maxvalor As String
Dim ultimonum As Long
Dim ultimoaño As Long
' Obtiene el valor máximo contenido en el campo
maxvalor = ValorMaximo("NombreTablaCodigos", "NombreCampoCod")
' Separa el numero de contador del numero del año
ultimonum = Mid(maxvalor, 1, InStr(1, maxvalor, "/") - 1) + 1
ultimoaño = Mid(maxvalor, InStr(1, maxvalor, "/") + 1)
' Si el año es distinto al actual, inicia el contador a 20 y asigna nuevo año
If Year(Date) <> ultimoaño Then
ultimoaño = Year(Date)
ultimonum = 20
End If
' Crea nuevo codigo
Me.Cod = ultimonum & "/" & ultimoaño
End Sub
Function ValorMaximo(Tabla As String, Campo As String) As Variant
Dim SQL As String
Dim rs As Recordset
SQL = "SELECT MAX(" & Campo & ") FROM " & Tabla Set rs = SQL_Leer(SQL)
If Not rs.EOF Then
ValorMaximo = rs(0)
Else
ValorMaximo = ""
End If
End Function
Cada vez que añadas un nuevo registro y pulses el botón obtendrás el siguiente numero de serie

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas