Generar registros consecutivos a través de una expresión

22/10/2014 - 17:07 por Raúl | Informe spam
Hola a todos:

supongo que será una cosa muy sencilla, pero no encuentro la solución.

Trabajo con Access 2000 y en la BD que tengo creada, necesito incorporar un campo numérico (llamémosle al campo AAA) que venga generado de la siguiente manera:

· Las dos últimas cifras del año en curso
· Tres cifras más que irán aumentando.

Como ejemplo sería una secuencia así:

14001
14002
...

Si inserto como valor predeterminado del campo que necesito generar, la expresión: ((Año(Fecha()-2000)*1000)+1 no me actualiza el valor del campo al introducir un nuevo registro, siempre me genera el valor 14001.

No se si me podréis ayudar.

Gracias de antemano por vuestra ayuda.

Raúl.

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
23/10/2014 - 11:09 | Informe spam
Hola
Create una función que busque (mediante DCount) los registros del año en curso. Sí te devuelve 0, creo el primero. Sí te devuelve un valor mayor de cero, lo incremento en uno.
Tendrás que tener en cuenta que hacer cuando llegues al máximo del valor del contador, que en tu caso parece 999.

Salu2,
José Mª Fueyo
Respuesta Responder a este mensaje
#2 José Mª Fueyo
23/10/2014 - 11:28 | Informe spam
En concreto, esta te podría servir.

<pego>
Public Function DevuelveContador() As String
Dim sFiltro As String, iCuenta As Integer, sSalida As String
sFiltro = "ID LIKE '" & Format(Date, "yy") & "*'"
iCuenta = DCount("ID", "tblMuestra", sFiltro)
'Genero la salida en función del valor de iCuenta
If iCuenta = 0 Then
sSalida = Format(Date, "yy") & "001"
ElseIf iCuenta > 0 And iCuenta < 999 Then
iCuenta = iCuenta + 1
sSalida = Format(Date, "yy") & Format(iCuenta, "000")
End If
DevuelveContador = sSalida
End Function
</pego>

Esta función te generará un contador desde 1 hasta 999 de cada año. No está controlado lo que pase cuando tengas ya tus 999 registros, tampoco está diseñada para el caso de que se produzcan huecos (ahí te dejo que te lo curres un poco ;-))

Salu2
José Mª Fueyo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida