ordenar años y siglos
Publicado por xavier (2 intervenciones) el 11/12/2009 18:57:30
Hola,
Tengo una base de datos en la que necesito ordenar los registros por fecha. El problema es que la fecha puede ser tanto un año exacto (p.e.: 1918) como un siglo en números romanos (p.e.: XVII).
Ahora tengo un campo fecha_años, con tipo de datos Número, Lugares decimales 0 y Regla de validación > 999, para asegurarme que el usario entre la fecha con cuatro dígitos para ordenar luego correctamente (no hay ni habrá registros con fecha anterior al año 1000)
Por otro lado tengo un campo fecha_siglos, con los mismos parámetros, donde el siglo se elige con un cuadro combinado de dos columnas vinculado a la tabla siglo_año, que establece la correspondencia entre siglos y años (p.e.: XVIII = 1700). De esta manera, el usuario elige de la lista del cuadro combinado un siglo (que es la segunda columna, la única visible) y éste se guarda como año (la primera columna, oculta, que da el origen de control)
El problema es que al tener dos campos, uno de siglos y otro de años, la ordenación, para que sea precisa, se tiene que hacer combinando ambos, primero ordenando los siglos y luego los años. Esto obligaría al usuario a poner siempre el siglo, incluso cuando supiese el año exacto, para que la ordenación salga bien. Y esto me parece confuso para el usuario, ya que la idea es que sólo introduzca el siglo cuando no sepa el año exacto.
Lo ideal sería que en vez de dos campos, se pudieran introducir los años y los siglos en un mismo campo, de manera que se pueda teclear el año exacto o elegir el siglo de un cuadro combinado. El problema es que si vinculo el cuadro combinado de los siglos a un campo, para poder introducir años exactos, necesito desactivar la opción Limitar a lista y sólo puedo desactivarla haciendo que la primera columna del cuadro combinado sea visible (y no con Ancho de columna 0). Si hago esto, me permite entrar años pero cuando elijo siglos me los muestra también en años, lo que es también confuso para el usuario.
¿Alguna solución? ¿Alguna manera para que cuando elijo siglos del cuadro combinado éstos sigan apareciendo como siglos, en números romanos?
Si consiguiera esto ya sería feliz, pero puestos a pedir...
Junto al campo Fecha tengo otro campo opcional para establecer mediante un cuadro de lista el período de un siglo elegido: Principios del siglo, Mediados del siglo, Finales del siglo. Con el sistema que tengo ahora, la fecha Principios del siglo XVII y Finales del siglo XVII son iguales: 1600, con lo que la ordenación no acabará de ser precisa. Me interesaría un sistema que precise un poco más y, por ejemplo, me convierta Principios de siglo XVII en 1600 y Finales del siglo XVII en 1699. Si lo incorporo a la tabla siglo_año, la lista del cuadro combinado será muy espesa y larga (con cuatro opciones por cada siglo).
¿Alguna manera de que Access vincule el siglo introducido en el campo Fecha (p.e.: XVII = 1600) con el campo del período (p.e.: Finales del siglo) y actualice el dato del campo Fecha (p.e: 1699)
Bueno, vaya rollo. En fin, gracias
Tengo una base de datos en la que necesito ordenar los registros por fecha. El problema es que la fecha puede ser tanto un año exacto (p.e.: 1918) como un siglo en números romanos (p.e.: XVII).
Ahora tengo un campo fecha_años, con tipo de datos Número, Lugares decimales 0 y Regla de validación > 999, para asegurarme que el usario entre la fecha con cuatro dígitos para ordenar luego correctamente (no hay ni habrá registros con fecha anterior al año 1000)
Por otro lado tengo un campo fecha_siglos, con los mismos parámetros, donde el siglo se elige con un cuadro combinado de dos columnas vinculado a la tabla siglo_año, que establece la correspondencia entre siglos y años (p.e.: XVIII = 1700). De esta manera, el usuario elige de la lista del cuadro combinado un siglo (que es la segunda columna, la única visible) y éste se guarda como año (la primera columna, oculta, que da el origen de control)
El problema es que al tener dos campos, uno de siglos y otro de años, la ordenación, para que sea precisa, se tiene que hacer combinando ambos, primero ordenando los siglos y luego los años. Esto obligaría al usuario a poner siempre el siglo, incluso cuando supiese el año exacto, para que la ordenación salga bien. Y esto me parece confuso para el usuario, ya que la idea es que sólo introduzca el siglo cuando no sepa el año exacto.
Lo ideal sería que en vez de dos campos, se pudieran introducir los años y los siglos en un mismo campo, de manera que se pueda teclear el año exacto o elegir el siglo de un cuadro combinado. El problema es que si vinculo el cuadro combinado de los siglos a un campo, para poder introducir años exactos, necesito desactivar la opción Limitar a lista y sólo puedo desactivarla haciendo que la primera columna del cuadro combinado sea visible (y no con Ancho de columna 0). Si hago esto, me permite entrar años pero cuando elijo siglos me los muestra también en años, lo que es también confuso para el usuario.
¿Alguna solución? ¿Alguna manera para que cuando elijo siglos del cuadro combinado éstos sigan apareciendo como siglos, en números romanos?
Si consiguiera esto ya sería feliz, pero puestos a pedir...
Junto al campo Fecha tengo otro campo opcional para establecer mediante un cuadro de lista el período de un siglo elegido: Principios del siglo, Mediados del siglo, Finales del siglo. Con el sistema que tengo ahora, la fecha Principios del siglo XVII y Finales del siglo XVII son iguales: 1600, con lo que la ordenación no acabará de ser precisa. Me interesaría un sistema que precise un poco más y, por ejemplo, me convierta Principios de siglo XVII en 1600 y Finales del siglo XVII en 1699. Si lo incorporo a la tabla siglo_año, la lista del cuadro combinado será muy espesa y larga (con cuatro opciones por cada siglo).
¿Alguna manera de que Access vincule el siglo introducido en el campo Fecha (p.e.: XVII = 1600) con el campo del período (p.e.: Finales del siglo) y actualice el dato del campo Fecha (p.e: 1699)
Bueno, vaya rollo. En fin, gracias
Valora esta pregunta


0