DUDAS BASE DE DATOS |
Responder |
Autor | |
macflai98
Nuevo Unido: 20/Marzo/2023 Localización: España Estado: Sin conexión Puntos: 11 |
Opciones de entrada
Gracias(0)
Enviado: 20/Marzo/2023 a las 17:07 |
Buenas tardes. Quería hacer un par de consultas que seguro que son muy sencillas pero que no soy capaz de sacar adelante.
Tengo una base de datos en access con una tabla donde tengo 2200 registros y un formulario mediante el cual meto los datos. Se trata de miembros de una asociación que tienen un nº de socio que va del 1 al 2200 con un campo autonumerico. Hasta ahi sin problemas Despues tengo un campo Estado en el que 1 es "Alta" y 2 es "baja". Entonces, yo quiero hacer un campo nuevo que se llame nº de orden solo para los que sean miembros de alta, con lo cual, los 1100 que son miembros de alta, tendrán 2 números, su nº de socio y su nº de orden. Pongo un ejemplo... Una persona es el nº 650 de socio pero de orden (ya que hay bajas delante de él) tiene el 350. Pongamos que mañana se da de baja uno que tiene un nº de socio más bajo que él (por ejemplo el nº 20)... pues esta persona ya no será el 350 sino el 349 (aunque mantiene el 650 como nº de socio). No sé si me he explicado bien... ¿ALguna ayuda? Después, quiero que ese nº de orden aparezca también en el formulario que uso para introducir los datos. La segunda consulta es más sencilla, creo... pero tampoco me sale. Es que en la tabla de datos, haya un campo "Edad" en el que a partir de un campo "fecha de nacimiento" automáticamente me salga la edad de la persona en años. Como digo, para alguien que sepa un poco seguro que está "chupado" pero para mi que lo hago todo autodidacta, me está costando un montón... GRACIAS |
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Opciones de entrada
Gracias(0)
|
¿En que tabla va el campo nuevo que se llame nº de orden y que finalidad tiene?
Saludos PD: En las normas del foro dice una pregunta por hilo.
|
|
macflai98
Nuevo Unido: 20/Marzo/2023 Localización: España Estado: Sin conexión Puntos: 11 |
Opciones de entrada
Gracias(0)
|
En primer lugar disculpas por poner dos preguntas, se me pasó al leer las normas.
El campo nº de orden iría en la tabla principal. No tengo otra tabla. La finalidad es que aquellos miembros que están de alta (aproximadamente la mitad de la base de datos) tengan dos números. Uno el que tienen por antiguedad desde que se apuntaron y otro el que les corresponde al quitar las bajas (por fallecimiento, porque se han dado de baja voluntariamente, etc.) |
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3861 |
Opciones de entrada
Gracias(0)
|
¿Necesitas de verdad ese número en la tabla?
Mira a ver si te viene mejor algo así
WHERE estado = 1 Así siempre vas a tener el número secuencial. Luis Editado por lbauluz - 22/Marzo/2023 a las 13:50 |
|
El Búho es un pajarraco
|
|
macflai98
Nuevo Unido: 20/Marzo/2023 Localización: España Estado: Sin conexión Puntos: 11 |
Opciones de entrada
Gracias(0)
|
Perdona mi ignorancia... Eso donde o como tendría que ponerlo?
Otra opción que también me valdría es que ese nº de orden apareciese en el Formulario que utilizo para introducir datos y gestionar miembros y no en la tabla. GRacias. Editado por macflai98 - 22/Marzo/2023 a las 14:29 |
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Opciones de entrada
Gracias(0)
|
No entiendo para que quieres un número, que puede cambiar constantemente, sigo sin entender la finalidad, en una consulta nueva en la vista sql pegas lo que dice Luis.
Saludos.
|
|
macflai98
Nuevo Unido: 20/Marzo/2023 Localización: España Estado: Sin conexión Puntos: 11 |
Opciones de entrada
Gracias(0)
|
Quizá no me he explicado del todo bien, disculpad.
La idea es que cada persona tenga 2 números. - Uno "histórico", es decir el número que se le dio cuando se dio de alta y que conserva para siempre (incluso aunque se dé de baja ese número no se puede reasignar, y por eso es la clave principal de la base de datos y es un campo autonumérico). - Uno "real", es decir... el orden que realmente ocupas en la asociación. Una persona puede ser el histórico 1300 pero realmente, entre los socios que siguen de alta, sera el 670... y que se vaya moviendo según haya bajas, por lo que si mañana se da de baja uno que está delante de ti, tu seas el 669. En la base de datos el campo de número historico es [nº hermano], el estado de alta o baja es [estado] y quiero crear un nuevo campo [nº orden] en el que los hermanos con estado =1 tengan un nº correlativo que se vaya actualizando según se dan bajas. Es decir, los que tienen estado=2 (que son los que están de baja) no tendrían número de orden. Quizá ahora me he explicado mejor. Gracias por vuestra ayuda. |
|
macflai98
Nuevo Unido: 20/Marzo/2023 Localización: España Estado: Sin conexión Puntos: 11 |
Opciones de entrada
Gracias(0)
|
no me ha funcionado, o no soy capaz de hacerla funcionar.
Gracias de todos modos. |
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3861 |
Opciones de entrada
Gracias(0)
|
lo que pongo es una query que te devuelve los datos del cliente y un numero secuencial en cada fila, que es lo que entiendo que pides.
De esta forma en lugar de tener que cambiar todos los clientes cada vez que uno se da de baja, solo enseñas el número de orden cada vez que se consulta Quiero decir, tienes 10 clientes y todos su número del 1 al 10. Se da de baja el numero 2 Lo que tu propones es que todos sigan teniendo su número del 1 al 10 como histórico pero añadirles otro número diciendo que ahora el 3 es el 2, el 4 es el 3... y el 10 es el 9. Esto implica cambiar este segundo campo de todos los clientes posteriores al que se ha dado de baja cambiándoles el nuevo número restando 1 al número que hubiese en ese campo, lo cual implica estar cambiando la tabla entera cada vez que uno se da de baja. Lo que yo propongo es NO tener ese campo, lo que digo es solo enseñar ese número secuencial, que es lo mismo que pides, sin tener que cambiar todo, más rápido y eficiente... y mucho menos dolor de cabeza.
|
|
El Búho es un pajarraco
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14025 |
Opciones de entrada
Gracias(0)
|
Ejemplo de como numerar una consulta:
https://accessaplicaciones.com/ejemplos.html#sq02 |
|
macflai98
Nuevo Unido: 20/Marzo/2023 Localización: España Estado: Sin conexión Puntos: 11 |
Opciones de entrada
Gracias(0)
|
Gracias por vuestras respuestas. No soy capaz de hacerlo, pero bueno, seguiré intentando con todo lo que me habéis ido aportando.
En vez de en la tabla, estoy intentando que ese dato me aparezca en el formulario de entrada y gestión de datos... Seguiré con ello, gracias. |
|
01loko
Colaborador Unido: 17/Agosto/2017 Localización: Santander Estado: Sin conexión Puntos: 807 |
Opciones de entrada
Gracias(0)
|
Me da la impresión de que el segundo numero es para acceder a la presidencia según antigüedad.
Yo lo haría mediante una consulta, del tipo de la recomendada por Ibauluz, para no guardar nada. |
|
Recordar de que soy nuevo y estoy aprendiendo.
|
|
chuselpelos
Nuevo Unido: 03/Diciembre/2012 Estado: Sin conexión Puntos: 2 |
Opciones de entrada
Gracias(0)
|
Hola, te puedo responder a tu segunda pregunta para que te enseñe la edad en el formulario de datos de cada socio, o bien en un campo calculado de una consulta.
Añade un cuadro de texto en el formulario que en la etiqueta ponga edad y en las propiedades, en la segunda propiedad llamada "origen del control", escribes: =Int((Fecha()-[Fecha de nacimiento])/365,25). "Int" deja solo la parte entera del resultado del cálculo, para que no te salgan decimales.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |