Access - Como crear un campo de autonumeracion programado?

 
Vista:

Como crear un campo de autonumeracion programado?

Publicado por Sergi (11 intervenciones) el 26/08/2016 09:54:11
Hola a todos!
Pues bien, mi problema es el siguiente:
Dispongo de una base de datos de gestión de proyectos en el que tengo un campo ID_PROYECTO que es el identificador de cada uno de los proyectos entrados. El formato de este número es el siguiente; dispone de 5 números en total, los dos primeros hacen referencia al año del proyecto y los tres restantes al número de proyecto del mismo año. por ejemplo:
16023, el 16 hace referencia a que ese proyecto es del año 2016, y el 023, indica que es el proyecto numero 23 que se ha abierto en el 2016.

Lo que debo hacer es que al abrir un nuevo proyecto en el formulario, automáticamente me genere el ID del proyecto siguiendo las especificaciones anteriores. El problema esta en que desconozco como hacerlo.

Seria perfecto que detectara el año en el que estamos automáticamente, y al cambiar de año que empezara otra vez desde 0 el numero de proyecto, por ejemplo:
que si el ultimo proyecto del 2016 es el 16087, que si el día 1 de enero de 2017 entro un proyecto nuevo me lo numere con el identificador 17000 o 17001.

Muchísimas gracias por adelantado y espero que me puedan ayudar!!
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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como crear un campo de autonumeracion programado?

Publicado por Jesús Manuel (375 intervenciones) el 26/08/2016 10:35:06
http://www.accessyexcel.com/cinco-formas-de-generar-un-valor-unico-para-usarlo-como-campo-clave/

Mira el ejemplo 4 y adaptado a tus necesidades.

Por lo que he visto hoy en esta web han tenido que hacer cambios y tienen el código con letra blanca sobre fondo blanco, por lo que tendrías que copiar y pegar en un documento de texto y asignar color de texto negro a todo para poder seguirlo bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como crear un campo de autonumeracion programado?

Publicado por Sergi (11 intervenciones) el 26/08/2016 11:51:10
Muchas gracias por el aporte, pero me queda una pequeña duda por solucionar.

Este código obtenido del enlace que ha comentado Jesús Manuel i modificado por mi:

1
2
3
4
Private Sub Form_Current()
If Not Me.NewRecord Then Exit Sub
Me.ID_PROJECTE = Format(Date, "yy") & Format(Nz(DMax("Val( Mid(ID_PROJECTE, 5))", "PROJECTES", "Val( Left(ID_PROJECTE,4)) = " & Format(Date, "yy")), 0) + 1, "000")
End Sub

El problema es que no me lee bien el ultimo registro, en mi caso tengo entrado hasta el 16058 y este código me genera el siguiente como 16001 en lugar de 16059.

Como debo hacerlo??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como crear un campo de autonumeracion programado?

Publicado por Jesús Manuel (375 intervenciones) el 26/08/2016 13:50:51
Creo que has adaptado mal el código.

En el ejemplo hacen referencia a un numero de 8 dígitos ( 20130028, 2014001) y tu utilizas un número de 5 dígitos, por lo que las funciones Mid y Left no van a aportar el valor esperado y esto hace que la comparación para buscar el último valor del año en curso falle.

Creo que sería: DMax("Val( Mid(ID_PROJECTE, 3))", "PROJECTES", "Val( Left(ID_PROJECTE,2))



Te recomiendo seguir los pasos e ir adaptando en cada caso y viendo el resultado, porque las partes del MID y el LEFT estaban al principio, te has ido al final y has querido adaptar todo sin entender como funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como crear un campo de autonumeracion programado?

Publicado por Sergi (11 intervenciones) el 29/08/2016 08:13:05
Muchísimas gracias!! funciona a la perfección!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar