Abajo dice “HSQLDB Embedded”.
Eso es. En todo caso, como está comenzando, lo mejor es que compartas el archivo en el que estás trabajando, así no tenemos que ir creando una base de datos a cada pregunta. Yo no puedo saber cuál es el error si no veo los campos que tienes
edited Jun 14 at 18:03
Creo que el error está en el ORDER BY, no se puede ordenar (directamente) por un campo que no existe, la concatenación no existe antes de generar la consulta y por tanto no puede ordenar la consulta por algo que no existe.
Lo que pretendes se soluciona con ORDER BY “apellido”, “nombres” , “curso”, “division” ASC
Aunque coin esa ordenación me parece que estás haciendo trabajar al ordenador sin necesidad: si solo hay un alumno con determinado nombre y apellido ¿para que necesitamos ordenar por curso?¿habrá tantos alumnos con el nombre y apellido iguales?
Por otro lado, me resulta curioso (salvo que no seas de un país hispano) que pongas nombres en plural y apellido en singular, pero esto es una apreciación mía que no tiene nada que ver con la base de datos
Ok, voy a preparar un archivo con pocos alumnos ficticios y lo voy a compartir.
Pero me gustaría saber: desde un formulario, ¿se pueden modificar más de una tabla? Por ejemplo, desde el formulario para ingresar SOCIOS, cuando elijo el hijo, lo que se modificaría es, en la tabla ALUMNES, en el registro del alumno, el id_socio
, para vincularlo con el padre… ¿se puede hacer?
Alumnes para compartir.odb (49,8 KB)
Frena un poco, aún estamos diseñando la tabla, no queramos hacer virguerías. Esto es como si al profesor de la autoescuela, antes de sacarte el carné, le preguntaras como puedes hacer un trombo para cambiar de sentido sin salirte de la carretera, claro
Según esta relación, cada socio paga una cuota, independientemente del numero de alumnos que dependan de él (porque en la tabla cuotas no se identifica al alumno ¿es eso correcto?
Ya tienes relacionado cada socio con un número cualquiera de alumnos. No necesitas los campos id_alumnoX ¿Si alguien tienen 12 hijos añadirías otros 7 id_alumno?
No, esos campos iban a ser borrados. No sé por qué están ahí todavía.
No se por qué, pero en la tabla no veo los datos, pero si hago un formulario sí que los veo…
Yo siempre trabajo con bases de datos Firebird, porque, no sé por qué las HSQL me dan problemas que nunca tengo con las de Firebird. Para poder crear bases de datos Firebird hay que activar Herramientas > Opciones > LibreOffice >Avanzadas > Activar funcionalidades experimentales
Bueno, en cuanto al diseño de las tablas, el campo dni lo has puesto como entero. En general, cuando un campo aparentemente numérico, como puede ser en este caso el dni o un código postal, si ese campo no se utiliza en ningún cálculo matemático, es mejor que el campo sea de tipo texto. En un campo numérico es muy difícil buscar “Los números que empiecen por 33” o en una ma ro ir buscando a medida que es ribes el número
almu_hs
Pero el SQL de LibreOffice es bastante limitado…
El SQL predeterminado de LibreOffice es HSQL v. 1.8
edited Jun 14 at 21:48
Lobaluna
El SQL predeterminado de LibreOffice es HSQL v. 1.8
El SQL “predeterminado” en LibreOffice es el SQL de la base de datos subyacente. La base de datos predeterminada es HSQLDB si no tienes activadas las Funcionalidades experimentales. Si tienes activadas las funcionalidades experimentales, la base de datos (incrustada) predeterminada es Firebird e incluso muestra un asistente para exportar los datos de HSQL a Firebird…
edited Jun 14 at 22:28
Y por cierto, ninguno de los dos SQLs es totalmente estándar, pero el SQL de Firebird está mucho más cerca de los estándares SQL que el de HSQLDB.
Yo he dicho “Yo siempre trabajo con bases de datos Firebird, porque, no sé por qué las HSQL me dan problemas que nunca tengo con las de Firebird” y no he dicho que nadie tenga que trabajar con Firebird, aunque si me preguntan, lo recomiendo encarecidamente, porque es más rápida, creo que más estable, más segura y más fácil de “escalar” (portarla a un servidor si es necesario) y además puede funcionar sin instalar Java, cosa que a los de Mac les da bastantes problemas.
Me estoy refiriendo a elegir entre bases de datos incorporadas, si hablamos de servidores habría mucho que discutir
edited Jun 14 at 22:31
Centrándonos de momento en las tablas de socios y alumnos. ¿Cuál sería el proceso?
– Yo entiendo que lo primero es el alumno, que se da de alta en el centro y que puede pagar o no la cuota. Si no paga cuota no tiene que existir previamente el socio.
– Otra postura es que llegue un socio, se de alta y luego se de de alta a los hijos. En cuanto al diseño de las tablas es similar pero la forma de hacer los formularios es diferente
En el primer caso sería un formulario basado en alumno con una lista desplegable para seleccionar el socio, en el segundo sería un formulario de socios con subformulario alumnos.
Cuando decidamos eso podemos decidir como se ven las cuotas
edited Jun 15 at 00:16
Estuve hablando con la gente de la cooperadora y vamos a hacer algo parecido a lo que dijiste:
- Un formulario de alumnos. Tendrá un desplegable para elegir el socio (padres). Después de muchas vueltas, logré hacerlo funcionar.
- Un formulario de socios. Solo serán ingresados y después, desde el formulario de alumnos, se selecciona el socio relacionado.
- Un formulario de cuotas, pero van a ser relacionadas con cada alumno, no al socio.
Pero hay cosas que no estoy sabiendo hacer y me parecen importantes:
- Dentro del mismo formulario, cuando un alumno paga o lo quiera vincular con un socio, me gustaría tener un buscador dentro del mismo formulario para encontrar al alumno. No puedo ir registro por registro hasta encontrarlo en 700 alumnos.
- Probé usar el buscador de Base, pero como apellidos y nombres están por separado, si escribo “José González”, por más que exista ese alumno, no me devuelve ningún resultado.
- Me gustaría algo como el que hice con el macro (creo que lo mostré más arriba). Y que desde los resultados, pueda seleccionar al alumno y ahí asignarle el socio o registrar la cuota pagada.
PD: migré la tabla a Firebird.
Che… estoy recibiendo muchos mensajes de error… y no sé bien si estoy haciendo algo muy mal o algo en el software anda muy mal.
Por ejemplo, creo una tabla, la guardo. No agrego nada, la edito y le doy a un campo que sea de “Valor automático”. Me dice que no la puede modificar pero la puede borrar y hacer una nueva. Le doy que sí y me salta este error.
Otro. Creo una tabla CUOTAS (imagen 1):
id_cuota: clave principal, Valor automático INTEGER
id_alumne: INTEGER
fecha: DATE
importe: INTEGER
Modifico la tabla y agrego dos registros (imagen 2)
Creo una consulta simple y funciona (imagen 3). Le agrego un criterio de valor para introducir (imagen 4). Cuando le ingreso 380 (imagen 6), que es un valor que existe, me devuelve error (imagen 6).