Crear campo numérico que se reinicie cada año

Querría saber si me puede ayudar a resolver la siguiente duda:
Estoy creando una base de datos en la que tengo que hacer unos impresos de novedades, las cuales deben estar numeradas empezando por el 1 el 1 de enero hasta el que se llegue en el año y que cuando cambiemos de año vuelva a empezar por el 1.
Los campos y tipos de datos de la tabla son:
Nombre del campo tipo de datos
Clave principal Autonumérico
Número Numérico (entero largo)
Año                                       Fecha/hora
                                                       - formato="del año" aaaa
                                                       - Valor predeterminado=Ahora()
Categoría Texto
Apellidos y Nombre Texto
DNI Texto
Vicisitudes Texto
Fecha                                      Fecha/hora
                                                         - formato= "Ferrol a "dd" de "mmmm" de "aaaa)
                                                         - Valor predeterminado=Ahora()
Firma Texto

1 respuesta

Respuesta
1
Bastará con hacer una consulta antes de calcular el número de impreso. Si la consulta de nº de impresos del año del impreso es cero, el número de impreso será 1. Si es distinto de cero, será el siguiente número.
Espero que lo estés intentando con VB, ya que es infinitamente más simple esta operación que con los ayudantes o funcionalidades de Access.
En otro caso, también se puede hacer, pero habrá que crear consultas... y será más lento.
Entiendo que es para que conforme se cree el impreso se asigne el número, y no para tratar datos ya existentes.
Hola de nuevo experto,
Estás en lo cierto es para que conforme se cree el impreso se asigne el número y no para tratar datos ya existentes.
He conseguido que se numero con la siguiente expresión:
Private Sub Número_Enter()
NÚMERO = DCount("Número", "Novedades") + 1
End Sub
Lo que necesito es que cada año comience por el 1. ¿Puedo usar esta expresión modificándola para que me lo haga? Y ¿Cómo podría hacerlo?. Lo he intentado y he buscado pero nada de lo que he visto me ha servido.
La expresión la tengo en el Número en el procedimiento de evento Al entrar.
Gracias
Bastará con hacer una consulta referida al campo de año, y meter un condicional.
Si el valor es 0, es que se trata del primer elemento del año.
Podría decirme como hacerlo
Gracias
Opciones:
1.- Hacerlo desde código, creando las querys, si no sabes código VB entonces habrá que hacerlo algo más complicado usando sólo formularios y subformularios
2.- Insertando en tu formulario un campo o un subformulario que obtenga los datos de una consulta que será del tipo:
SELECT Count (Año) FROM NOMBRE_TABLA WHERE Año = Year (Now())
El valor numérico será siempre el de ese campo + 1.
Hola de nuevo,
Soy bastante novato en access y no te entiendo muy bien.
¿Podría decirme como hacerlo con código VB?.
¿Podría añadir a la expresión que tengo para que me lo número algo para que se reinicie cada año?
Muchas gracias
Si no sabes es mejor que no nos metamos directamente con querys.
Crea una nueva consulta, y ponle como valor en SQL el SELECT Count que te indiqué.
En el formulario crea un campo que obtenga el valor de esa consulta guardada, o un subformulario que obtenga el valor de esa consulta.
Crea un botón "Asignar ID" que asigne al campo de tu registro el valor de ese campo consultado + 1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas