Bases de datos en la enseñanza

3 / Formularios

Mejora del formulario de introducción de datos para el seguimiento de alumnos

Vamos a intentar evitar la incómoda situación que supone utilizar los ID de alumnos, profesores, asignaturas y cursos, de forma que simplemente seleccionemos en un desplegable la opción que deseemos.

El punto de partida sería el formulario diseñado a partir del Asistente y cuyo aspecto es el siguiente:

Con el formulario en la vista Diseño, mantén pulsada la tecla Control y haz clic sobre el campo Expediente, no sobre la etiqueta.

Ahora haz clic con el botón derecho, y busca el comando Reemplazar por, a continuación selecciona Listado, como puedes ver en la siguiente figura:

Probablemente sea necesario hacer más grande el tamaño del campo, pero eso lo podemos hacer en cualquier otro momento. El siguiente paso será hacer doble clic sobre el campo que acabamos de transformar, teniendo cuidado de que sólo este seleccionado el campo y no la etiqueta. Aparecerá un cuadro de propiedades donde debes hacer clic sobre la pestaña Dato.

Los datos que debes introducir en cada opción son los siguientes:

Campo de datos
            IDAlumno

Indica el campo de la tabla sobre la que está basado el formulario que debe almacenar la información, en nuestro caso el campo IDAlumno de la tabla SeguimientoAlumnos

Tipo del contenido de lista
            Sql[Native]

Indica el método que vamos a utilizar para localizar los datos que deseamos mostrar en la lista. Utilizamos SQL para poder concatenar los campos Apellidos y Nombre y así formar el Nombre completo del alumno”

Contenido de la lista
         SELECT "Apellidos" + ', ' + "Nombre"  AS NombreCompleto, "Expediente"  FROM "Alumnos" ORDER BY NombreCompleto

Debes copiar este texto exactamente igual que aparece aquí escrito. Esta será la consulta para mostrar el nombre completo del alumno

Campo ligado
         1
           
Sirve para indicarle a Base cual será el campo de la consulta que debe almacenar, por supuesto el expediente, ya que el nombre sólo lo queremos como ayuda para mejorar la comprensión del formulario.

Después de esto el aspecto de la ventana de propiedades deberá ser el siguiente:

Para que todo funcione correctamente, debemos asegurarnos de que la opción Desplegable de la ficha General del cuadro de propiedades esta puesta a .

Con todo esto, el aspecto de nuestro nuevo campo sería el que muestra la figura siguiente. De este modo, seleccionaremos el nombre del alumno y automáticamente Base guardará su número de expediente.

Para el caso de los profesores, el proceso sería idéntico, pero la consulta SQL que debemos utilizar sería la siguiente:

SELECT "Apellidos" + ', ' + "Nombre"  AS NombreCompleto, "Id Profesor"  FROM "Profesores" ORDER BY NombreCompleto

Después de esto, nos quedarían los campos Asignatura y  Curso con los que deberías hacer más de lo mismo pero utilizando las sentencias SQL siguientes:

Asignaturas

SELECT "Asignatura", "Id Asignatura" FROM "Asignaturas"

Cursos

            SELECT "Curso", "Id Curso" FROM "Cursos"

Existe otro método para crear este tipo de campos, siempre y cuando no ocurra como con el nombre del alumno y profesor, donde ha sido necesario componer el nombre completo.

Haz clic en el comando Ver/Barras de herramientas/Campos de control de formulario y haz clic en el elemento denominado Listado como muestra la figura

Ha continuación haz clic sobre el formulario para describir el tamaño del objeto. Después de esto aparecerá el primer paso del Asistente.

En el primer paso debemos seleccionar la tabla que utilizaremos para mostrar los datos del control, Por ejemplo, Cursos.

A continuación indicaremos el campo que deseamos que muestre el control, en nuestro caso el nombre del curso denominado simplemente “Curso”

El paso siguiente es el más importante, ya que debemos seleccionar los campos de vinculación de la tabla origen del formulario con la tabla que muestra los datos del control. Por ejemplo, esto nos permitirá seleccionar un nombre de curso y que el formulario guarde su identificador.


Después de todo esto, finalizar y listo.