bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA...

140
6.- INTERFAZ DE USUARIO Y CÓDIGO VBA

Transcript of bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA...

Page 1: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

6.- INTERFAZ DE USUARIO Y CÓDIGO VBA

Page 2: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 53 de 197

Una vez construida la base de datos podemos empezar a diseñar el interfaz de usuario

de la aplicación así como el código VBA (Visual Basic para Aplicaciones) asociado a

dicho interfaz. El interfaz de usuario de la aplicación está constituido por una serie de

formularios, que son las diferentes ventanas que ve el usuario cuando hace uso de la

aplicación y con las cuales puede interactuar. Esta interacción se produce a través de los

distintos controles que contiene cada formulario: fichas, botones, cuadros de texto,

cuadros combinados, cuadros de lista, casillas de verificación, etc. Tanto los controles

como los formularios disponen de un conjunto de propiedades (tamaño, color, etc.) y

comportamientos o acciones llamadas métodos (por ejemplo, el método close de un

formulario permite cerrarlo), y además responden a eventos provocados por el usuario

(como por ejemplo, hacer clic sobre un botón) o por el sistema.

Podemos escribir código VBA y asociarlo a un determinado evento, es decir, siempre

que ocurra dicho evento se ejecutará el código VBA que lleva asociado. De esta forma

podemos definir el comportamiento que tendrán los formularios y sus controles, o sea,

podemos controlar en definitiva cómo se comportará la aplicación en su interacción con

los usuarios y con el sistema.

Para crear los formularios y el código VBA de la aplicación utilizaremos Microsoft

Office Access 2003. Este software posee un interfaz de usuario muy amigable que nos

permite llevar a cabo dichas tareas con mucha comodidad. Además, usaremos Access

para construir las consultas, los informes y los gráficos de la aplicación. Las consultas

pueden diseñarse gráficamente o haciendo uso del lenguaje de consulta estructurado

(SQL o Structured Query Language). En cuanto a los informes y los gráficos, se

generan de forma parecida a como se construyen los formularios.

A continuación pasamos a describir uno por uno los formularios que componen la

aplicación. Veremos el aspecto que presenta cada formulario, qué controles incluye,

analizaremos el código VBA más relevante y describiremos las consultas, informes y

gráficos presentes en cada formulario.

Page 3: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 54 de 197

6.1.- Formulario PanelPrincipal El aspecto que presenta el formulario PanelPrincipal es el siguiente:

Figura 6.1.a

Se trata del formulario principal de la aplicación, desde el cual podemos acceder al resto

de los formularios y explorar todas las funcionalidades de la aplicación. Cuando

abrimos la aplicación aparece este formulario.

En la figura 6.1.a podemos ver que en la barra de título aparece el título del formulario:

Panel principal. Para referirnos a este formulario, podemos hacerlo por su nombre

(PanelPrincipal) o bien por su título (Panel principal).

6.1.1.- Controles Vamos a realizar una descripción de cada uno de los controles que posee el formulario

Panel principal, lo cual nos ayudará a comprender el funcionamiento de este

formulario.

Page 4: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 55 de 197

1. Botón de comando BCPfc

Tiene asociada una etiqueta titulada Proyectos Fin de Carrera.

Al hacer clic sobre este botón cerramos el formulario Panel principal y abrimos el

formulario Proyectos Fin de Carrera.

2. Botón de comando BCSesTrib

Tiene asociada una etiqueta titulada Sesiones de Tribunal.

Al hacer clic sobre este botón cerramos el formulario Panel principal y abrimos el

formulario Sesiones de Tribunal.

3. Botón de comando BCProf

Tiene asociada una etiqueta titulada Profesores.

Al hacer clic sobre este botón cerramos el formulario Panel principal y abrimos el

formulario Profesores.

4. Botón de comando BCPanelConfig

Tiene asociada una etiqueta titulada Panel de Configuración.

Al hacer clic sobre este botón cerramos el formulario Panel principal y abrimos el

formulario Panel de Configuración.

5. Botón de comando BCAtras

Está situado en la esquina inferior izquierda del formulario y contiene la imagen de

una flecha de color verde.

Al hacer clic sobre este botón cerramos el formulario Panel principal y regresamos

al formulario que teníamos abierto anteriormente.

6. Botón de comando BCSalir

Está situado en la esquina inferior derecha del formulario y contiene la imagen de

una flecha de color azul apuntando hacia una puerta de salida.

Al hacer clic sobre este botón salimos de la aplicación de base de datos.

Page 5: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 56 de 197

6.1.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Al bajar una tecla del formulario PanelPrincipal El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

2. Evento Al ocurrir un error del formulario PanelPrincipal El código asociado a este evento se utiliza para mostrar un mensaje cuando se produce

un error desconocido.

3. Evento Al hacer clic del botón de comando BCPfc El código asociado a este evento se utiliza para cerrar el formulario Panel principal y

abrir el formulario Proyectos Fin de Carrera.

4. Evento Al hacer clic del botón de comando BCSesTrib El código asociado a este evento se utiliza para cerrar el formulario Panel principal y

abrir el formulario Sesiones de Tribunal.

5. Evento Al hacer clic del botón de comando BCProf El código asociado a este evento se utiliza para cerrar el formulario Panel principal y

abrir el formulario Profesores.

6. Evento Al hacer clic del botón de comando BCPanelConfig El código asociado a este evento se utiliza para cerrar el formulario Panel principal y

abrir el formulario Panel de Configuración.

Page 6: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 57 de 197

7. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para cerrar el formulario Panel principal y

regresar al formulario que teníamos abierto anteriormente.

8. Evento Al hacer clic del botón de comando BCSalir El código asociado a este evento se utiliza para salir de la aplicación mostrando antes un

mensaje en el que se recuerda al usuario que haga copias de seguridad y compacte la

base de datos periódicamente.

Page 7: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 58 de 197

6.2.- Formulario Profesores El aspecto que presenta el formulario Profesores es el siguiente:

Figura 6.2.a

Este formulario muestra toda la información asociada a los profesores del Departamento

de Organización Industrial y Gestión de Empresas de la Universidad de Sevilla. Los

registros de este formulario proceden de la tabla Profesores de la base de datos y se

muestran de uno en uno.

En la figura 6.2.a podemos ver que en la barra de título aparece el título del formulario:

Profesores. En este caso coinciden el nombre y el título del formulario.

6.2.1.- Controles Vamos a realizar una descripción de cada uno de los controles que posee el formulario

Profesores, lo cual nos ayudará a comprender el funcionamiento de este formulario.

Page 8: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 59 de 197

1. Cuadro de texto CTIdentificador

Tiene asociada una etiqueta titulada Identificador del registro.

Muestra el campo ProfesorID de la tabla Profesores de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: número secuencial (incrementado de uno a uno) único asignado

automáticamente por la base de datos cada vez que agregamos un nuevo registro

a una tabla. Este tipo de datos recibe el nombre de autonumérico, denominación

que utilizaremos a partir de ahora.

Tamaño del campo: entero largo, o sea, puede almacenar números entre

-2.147.483.648 y 2.147.483.647 (no admite fracciones).

Contiene, por tanto, un identificador del profesor mostrado en el formulario.

Presenta un color de fondo gris claro (semejante al color del formulario) en vez de

blanco (como suele ser habitual en los cuadros de texto), lo cual nos indica que no

podemos modificar el contenido de este cuadro de texto. Por tanto, este cuadro de

texto se encuentra bloqueado.

2. Cuadro de texto CTAp1Profesor

Tiene asociada una etiqueta titulada Primer apellido.

Muestra el campo Ap1Profesor de la tabla Profesores de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 50.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Contiene, por tanto, el primer apellido del profesor.

3. Cuadro de texto CTAp2Profesor

Tiene asociada una etiqueta titulada Segundo apellido.

Muestra el campo Ap2Profesor de la tabla Profesores de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 50.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Page 9: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 60 de 197

Permitir longitud cero: sí.

Contiene, por tanto, el segundo apellido del profesor.

4. Cuadro combinado CCTratamiento

Está situado justo a la izquierda del cuadro de texto CTNombProfesor, con el cual

comparte la etiqueta titulada Nombre. Un cuadro combinado no es más que un

cuadro de texto que incluye una lista desplegable con posibles valores para ese

cuadro de texto.

Muestra el campo Tratamiento de la tabla Profesores de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 2.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Tiene como origen una lista formada por dos valores: “D.” y “Dª”

Recoge, por tanto, si el profesor mostrado en el formulario debe ser tratado como

Don o como Doña.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

5. Cuadro de texto CTNombProfesor

Esta situado justo a la derecha del cuadro combinado CCTratamiento, con el cual

comparte la etiqueta titulada Nombre.

Muestra el campo NombProfesor de la tabla Profesores de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 50.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Contiene, por tanto, el nombre del profesor.

6. Cuadro combinado CCCategoria

Tiene asociada una etiqueta titulada Categoría.

Page 10: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 61 de 197

Muestra el campo CategoriaID de la tabla Profesores de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT Categorias.CategoriaID, Categorias.Categoria FROM Categorias

ORDER BY Categorias.Categoria;”

Esta consulta genera una tabla con dos columnas, que son los campos CategoriaID

y Categoria de la tabla Categorias, y tantas filas como registros contiene la tabla

Categorias. Los valores que aparecen en la lista desplegable del cuadro combinado

son los del campo Categoria mientras que en la tabla Profesores se guardan los

valores del campo CategoriaID debido a que tiene menor tamaño.

Contiene, por tanto, la categoría del profesor mostrado en el formulario.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

7. Cuadro combinado CCDedicacion

Tiene asociada una etiqueta titulada Dedicación (h/sem).

Muestra el campo Dedicacion de la tabla Profesores de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: simple, o sea, puede almacenar números entre

-3,402823E38 y -1,401298E-45 para valores negativos, y entre 1,401298E-45 y

3,402823E38 para valores positivos.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la tabla Dedicaciones de la base de datos. Por tanto, los valores

que aparecen en la lista desplegable del cuadro combinado son los valores del

campo Dedicacion de la tabla Dedicaciones.

Contiene, por tanto, la dedicación (horas de docencia semanales) del profesor

mostrado en el formulario.

Page 11: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 62 de 197

8. Cuadro de texto CTAntiguedad

Tiene asociada una etiqueta titulada Antigüedad.

Muestra el campo Antiguedad de la tabla Profesores de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: fecha/hora.

Formato: fecha corta (por ejemplo: 20/05/2005)

Máscara de entrada: 00/00/0000;_

La máscara de entrada sirve para que los usuarios introduzcan en el cuadro de

texto valores que se ajustan a un determinado formato, en este caso el formato de

fecha corta. Usaremos el guión bajo como carácter marcador.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Contiene, por tanto, la fecha a partir de la cual el profesor mostrado en el formulario

pertenece a su categoría.

9. Cuadro combinado CCGrInv

Tiene asociada una etiqueta titulada Grupo de Investigación.

Muestra el campo GrInvID de la tabla Profesores de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT GruposInvestigacion.GrInvID, GruposInvestigacion.GrInv

FROM GruposInvestigacion ORDER BY GruposInvestigacion.GrInvID;”

Esta consulta genera una tabla con dos columnas, que son los campos GrInvID y

GrInv de la tabla GruposInvestigacion, y tantas filas como registros contiene la tabla

GruposInvestigacion. Los valores que aparecen en la lista desplegable del cuadro

combinado son los del campo GrInv mientras que en la tabla Profesores se guardan

los valores del campo GrInvID debido a que tiene menor tamaño.

Contiene, por tanto, el grupo de investigación al que pertenece el profesor mostrado

en el formulario.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

Page 12: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 63 de 197

10. Botón de comando BCEditar

Tiene asociada una etiqueta titulada Editar registro.

Al hacer clic sobre este botón desbloqueamos la edición del registro mostrado en el

formulario, es decir, podemos modificar los datos que aparecen en el formulario.

11. Botón de comando BCGuardarReg

Tiene asociada una etiqueta titulada Guardar registro.

Al hacer clic sobre este botón bloqueamos la edición del registro mostrado en el

formulario y se guardan los cambios realizados en dicho registro.

12. Botón de comando BCNuevoReg

Tiene asociada una etiqueta titulada Nuevo registro.

Al hacer clic sobre este botón cerramos el formulario Profesores y abrimos el

formulario Profesores – Nuevo registro.

13. Botón de comando BCEliminar

Tiene asociada una etiqueta titulada Eliminar registro.

Al hacer clic sobre este botón eliminamos el registro mostrado en el formulario.

14. Botón de comando BCBuscar

Tiene asociada una etiqueta titulada Buscar registros.

Al hacer clic sobre este botón abrimos el formulario BuscarProfesores (el título de

este formulario es Buscar registros).

15. Botón de comando BCIrAReg

Tiene asociada una etiqueta titulada Ir a registro.

Al hacer clic sobre este botón abrimos el formulario CuadroProfesores (el título de

este formulario es Ir a registro).

Page 13: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 64 de 197

16. Botón de comando BCOrdenar

Tiene asociada una etiqueta titulada Ordenar registros.

Al hacer clic sobre este botón abrimos el formulario OrdenarProfesores (el título de

este formulario es Ordenar registros).

17. Botón de comando BCQuitarFiltro

Tiene asociada una etiqueta titulada Quitar filtro u orden.

Al hacer clic sobre este botón quitamos los filtros y ordenaciones existentes en el

formulario. De esta forma, utilizando los botones de desplazamiento y el cuadro de

número de registro, situados en la parte inferior izquierda del formulario, podemos

desplazarnos por todos los registros de la tabla Profesores, los cuales aparecen en el

orden en que han sido introducidos en dicha tabla.

18. Botón de comando BCListProf

Tiene asociada una etiqueta titulada Listado de profesores.

Al hacer clic sobre este botón abrimos el informe Listado de profesores.

19. Botón de comando BCPfcDir

Tiene asociada una etiqueta titulada Nº de PFCs dirigidos según profesor.

Al hacer clic sobre este botón abrimos el formulario PfcTutorGraficos (el título de

este formulario es Configurar gráfico).

20. Botón de comando BCAsisTrib

Tiene asociada una etiqueta titulada Nº de asistencias a tribunales de PFCs según

profesor.

Al hacer clic sobre este botón abrimos el formulario PfcTribunalGraficos (el título

de este formulario es Configurar gráfico).

21. Botón de comando BCTutor

Tiene asociada una etiqueta titulada PFCs como tutor.

Al hacer clic sobre este botón abrimos el formulario Proyectos fin de carrera como

tutor.

Page 14: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 65 de 197

22. Botón de comando BCTribunal

Tiene asociada una etiqueta titulada PFCs como miembro del tribunal.

Al hacer clic sobre este botón abrimos el formulario Proyectos fin de carrera como

miembro del tribunal.

23. Botón de comando BCMostrarRegistros

Tiene asociada una etiqueta titulada Mostrar todos los registros.

Se encuentra siempre desactivado y su presencia se debe a razones puramente

estéticas. Este botón de comando se utiliza en el formulario Profesores – Nuevo

registro para cerrar dicho formulario y abrir el formulario Profesores. Esto dos

formularios cuentan con el mismo aspecto para que, al pasar de uno a otro, no se

note que hemos cambiado de formulario y parezcan un mismo formulario. Por este

motivo se han incluido los mismos controles en ambos formularios, de tal forma que

en cada formulario desactivamos aquellos controles que sólo sirven para el otro

formulario.

24. Botón de comando BCAtras

Está situado en la esquina inferior izquierda del formulario y contiene la imagen de

una flecha de color verde.

Al hacer clic sobre este botón cerramos el formulario Profesores y regresamos al

formulario que teníamos abierto anteriormente.

25. Botón de comando BCCerrar

Está situado en la esquina inferior derecha del formulario y contiene la imagen de

una letra “X” de color gris oscuro.

Al hacer clic sobre este botón cerramos el formulario Profesores y abrimos el

formulario Panel principal.

Page 15: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 66 de 197

6.2.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Al activar registro del formulario Profesores Este evento se produce cuando el enfoque se desplaza a un registro, haciendo que sea el

registro actual, o cuando el formulario se actualiza o se somete a una nueva consulta.

El código asociado a este evento se utiliza para:

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCIrAReg, BCOrdenar, BCQuitarFiltro, BCListProf, BCPfcDir, BCAsisTrib,

BCTutor y BCTribunal.

Desactivar el botón de comando BCGuardarReg.

2. Evento Antes de actualizar del formulario Profesores Este evento se produce antes de que se actualicen los datos de un registro.

El código asociado a este evento se utiliza para:

Impedir que se actualice un registro si se detecta que existe otro registro con el

mismo profesor (nombre y apellidos).

Impedir que se actualice un registro si los cambios realizados en él son incoherentes

con la secuenciación de los tribunales: esto sucede cuando modificamos la categoría

de un profesor y resulta que el campo NumTribunales correspondiente a esa nueva

categoría es menor o igual que el campo ContadorAsistencias perteneciente a dicho

profesor.

3. Evento Después de actualizar del formulario Profesores Este evento se produce después de que se actualicen los datos modificados en un

registro.

Page 16: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 67 de 197

El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando que el registro ha sido actualizado.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCIrAReg, BCOrdenar, BCQuitarFiltro, BCListProf, BCPfcDir, BCAsisTrib,

BCTutor y BCTribunal.

Desactivar el botón de comando BCGuardarReg.

Incorporar el registro a la secuenciación de los tribunales si fuera necesario: esto

sucede cuando modificamos la categoría de un profesor de tal manera que pasa de

no poder ser miembro del tribunal a tener que asistir a los tribunales. El usuario

puede elegir entre situarlo en el primer puesto de la cola o en el último.

Retirar el registro de la secuenciación de los tribunales si fuera necesario: esto

sucede cuando modificamos la categoría de un profesor de tal manera que pasa de

tener que asistir a los tribunales a no poder ser miembro del tribunal.

4. Evento Al Eliminar del formulario Profesores Este evento se produce cuando el usuario hace clic sobre el botón de comando

BCEliminar para eliminar un registro, pero antes de que el registro se elimine

realmente.

El código asociado a este evento se utiliza para mostrar un mensaje al usuario

preguntándole si está seguro de que desea eliminar el registro que ha seleccionado.

5. Evento Al abrir del formulario Profesores Este evento se produce cuando se abre el formulario, pero antes de que se muestre el

primer registro.

El código asociado a este evento se utiliza para que el formulario Profesores muestre el

último registro de la tabla Profesores. Además, si en esta tabla no existiera ningún

registro, se muestra un mensaje explicando tal circunstancia y a continuación se cierra el

Page 17: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 68 de 197

formulario Profesores y se abre el formulario Profesores – Nuevo registro para que

podamos introducir el primer registro.

6. Evento Al bajar una tecla del formulario Profesores El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

7. Evento Al ocurrir un error del formulario Profesores El código asociado a este evento se utiliza para mostrar un mensaje de error cuando se

produce un error desconocido.

8. Evento Al no estar en la lista del cuadro combinado CCDedicacion Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

9. Evento Al hacer clic del botón de comando BCEditar El código asociado a este evento se utiliza para:

Desbloquear la edición del registro mostrado en el formulario, es decir, podemos

modificar los datos que aparecen en el formulario.

Activar el botón de comando BCGuardarReg.

Desactivar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCIrAReg, BCOrdenar, BCQuitarFiltro, BCListProf, BCPfcDir, BCAsisTrib,

BCTutor y BCTribunal.

Page 18: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 69 de 197

10. Evento Al hacer clic del botón de comando BCGuardarReg El código asociado a este evento se utiliza para:

Guardar los cambios realizados en el registro que muestra el formulario.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCIrAReg, BCOrdenar, BCQuitarFiltro, BCListProf, BCPfcDir, BCAsisTrib,

BCTutor y BCTribunal.

Desactivar el botón de comando BCGuardarReg.

11. Evento Al hacer clic del botón de comando BCNuevoReg El código asociado a este evento se utiliza para cerrar el formulario Profesores y abrir el

formulario Profesores – Nuevo registro.

12. Evento Al hacer clic del botón de comando BCEliminar El código asociado a este evento se utiliza para eliminar el registro mostrado en el

formulario y mostrar un mensaje confirmando que el registro ha sido eliminado. En el

caso de que dicho registro corresponda a un profesor que se encuentra en la cola de la

secuenciación de los tribunales, el código se encarga también de actualizar las

posiciones de la cola tras la eliminación de dicho profesor.

13. Evento Al hacer clic del botón de comando BCBuscar El código asociado a este evento se utiliza para abrir el formulario BuscarProfesores (el

título de este formulario es Buscar registros).

14. Evento Al hacer clic del botón de comando BCIrAReg El código asociado a este evento se utiliza para abrir el formulario CuadroProfesores (el

título de este formulario es Ir a registro).

Page 19: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 70 de 197

15. Evento Al hacer clic del botón de comando BCOrdenar El código asociado a este evento se utiliza para abrir el formulario OrdenarProfesores

(el título de este formulario es Ordenar registros).

16. Evento Al hacer clic del botón de comando BCQuitarFiltro El código asociado a este evento se utiliza para quitar los filtros y ordenaciones

existentes en el formulario, sin que cambie el registro mostrado por el formulario.

17. Evento Al hacer clic del botón de comando BCListProf El código asociado a este evento se utiliza para abrir el informe Listado de profesores.

18. Evento Al hacer clic del botón de comando BCPfcDir El código asociado a este evento se utiliza para abrir el formulario PfcTutorGraficos (el

título de este formulario es Configurar gráfico).

19. Evento Al hacer clic del botón de comando BCAsisTrib El código asociado a este evento sirve para abrir el formulario PfcTribunalGraficos (el

título de este formulario es Configurar gráfico).

20. Evento Al hacer clic del botón de comando BCTutor El código asociado a este evento se utiliza para abrir el formulario Proyectos fin de

carrera como tutor.

21. Evento Al hacer clic del botón de comando BCTribunal El código asociado a este evento se utiliza para abrir el formulario Proyectos fin de

carrera como miembro del tribunal.

22. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para cerrar el formulario Profesores y

regresar al formulario que teníamos abierto anteriormente.

Page 20: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 71 de 197

23. Evento Al hacer clic del botón de comando BCCerrar El código asociado a este evento se utiliza para cerrar el formulario Profesores y abrir el

formulario Panel principal.

6.2.3.- Informes Desde el formulario Profesores podemos abrir el informe ListadoProfesores haciendo

clic sobre el botón de comando BCListProf. Este informe se titula Listado de profesores

y consiste en un listado con todos los profesores del Departamento ordenados según

categoría, dedicación y antigüedad (por este orden de prioridad). De cada profesor se

aporta la siguiente información: nombre y apellidos, categoría, dedicación, antigüedad y

grupo de investigación.

Todas las páginas del informe cuentan con encabezado y pié de página que recogen la

siguiente información: logotipo de la Universidad de Sevilla, nombre del Departamento,

dirección de la Escuela Superior de Ingenieros, número de página y total de páginas del

informe.

Si queremos imprimir el informe tenemos todas las facilidades para ello: podemos

generar una vista previa del mismo, aplicar el zoom, seleccionar la impresora y las

opciones de impresión, configurar el tamaño y la posición del papel así como los

márgenes, etc.

6.2.4.- Gráficos Desde el formulario Profesores podemos generar los siguientes gráficos:

Gráfico que muestra número de proyectos fin de carrera dirigidos según

profesor.

Gráfico que muestra el número de asistencias a tribunales de proyectos fin de

carrera según profesor.

Page 21: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 72 de 197

Haciendo clic sobre el botón de comando BCPfcDir del formulario Profesores abrimos

el formulario PfcTutorGraficos, el cual nos permite configurar el gráfico que mostrará

el número de proyectos fin de carrera dirigidos según profesor. Las opciones de

configuración son las siguientes:

Tipo de gráfico: columna agrupada (gráfico GrafTutoresColAg) o columna

apilada (gráfico GrafTutoresColAp).

Cursos académicos: podemos seleccionar todos los cursos académicos o

solamente aquéllos que nos interesen.

Profesores: podemos seleccionar todos los profesores o solamente aquéllos que

nos interesen.

De igual manera, haciendo clic sobre el botón de comando BCAsisTrib del formulario

Profesores abrimos el formulario PfcTribunalGraficos, el cual nos permite configurar el

gráfico que muestra el número de asistencias a tribunales de proyectos fin de carrera

según profesor. Las opciones de configuración son idénticas a las del gráfico anterior. Si

seleccionamos el gráfico de columna agrupada se abrirá el gráfico GrafTribunalesColAg

y si elegimos el gráfico de columna apilada abriremos el gráfico GrafTribunalesColAp.

Si queremos imprimir alguno de estos gráficos tenemos todas las facilidades para ello:

podemos generar una vista previa del gráfico, aplicar el zoom, seleccionar la impresora

y las opciones de impresión, configurar el tamaño y la posición del papel así como los

márgenes, etc.

Page 22: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 73 de 197

6.3.- Formulario ProfesoresAgregar El aspecto que presenta el formulario ProfesoresAgregar es el siguiente:

Figura 6.3.a

En la figura 6.3.a podemos ver que en la barra de título aparece el título del formulario:

Profesores – Nuevo registro. Para referirnos a este formulario, podemos hacerlo por su

nombre (ProfesoresAgregar) o bien por su título (Profesores – Nuevo registro).

Si comparamos las figuras 6.2.a y 6.3.a podemos apreciar que el formulario Profesores

y el formulario Profesores – Nuevo registro cuentan con el mismo aspecto. Con esto se

pretende que, al pasar de uno a otro, no se note que hemos cambiado de formulario y

parezcan un mismo formulario. Así, se han incluido los mismos controles en ambos

formularios, de tal forma que en cada formulario desactivamos aquellos controles que

sólo sirven para el otro formulario.

El formulario Profesores – Nuevo registro sirve, como su propio nombre indica, para

agregar nuevos registros a la tabla Profesores de la base de datos, es decir, a través de

este formulario daremos de alta a los nuevos profesores.

Page 23: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 74 de 197

6.3.1.- Controles Son los mismos que los del formulario Profesores como ya hemos comentado. Se

encuentran desactivados los siguientes controles: BCBuscar, BCIrAReg, BCOrdenar,

BCQuitarFiltro, BCListProf, BCPfcDir, BCAsisTrib, BCTutor y BCTribunal.

6.3.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Antes de insertar del formulario ProfesoresAgregar Este evento se produce cuando el usuario escribe el primer carácter de un nuevo

registro, pero antes de que el registro se cree realmente.

El código asociado a este evento se utiliza para activar el botón de comando

BCGuardarReg.

2. Evento Antes de actualizar del formulario ProfesoresAgregar El código asociado a este evento se utiliza para impedir que guardemos un registro si se

detecta que existe otro registro con el mismo profesor (nombre y apellidos).

3. Evento Después de actualizar del formulario ProfesoresAgregar El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando que hemos guardado un nuevo registro.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCNuevoReg y BCEliminar.

Desactivar el botón de comando BCGuardarReg.

Incorporar el nuevo registro a la secuenciación de los tribunales en el caso de que

dicho registro corresponda a un profesor que puede ser miembro del tribunal. El

usuario puede elegir entre situarlo en el primer puesto de la cola o en el último.

Page 24: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 75 de 197

Retirar el nuevo registro de la secuenciación de los tribunales si fuera necesario:

esto sucede cuando modificamos la categoría del nuevo profesor después de haberlo

guardado, de tal manera que pasa de tener que asistir a los tribunales a no poder ser

miembro del tribunal.

4. Evento Al eliminar del formulario ProfesoresAgregar El código asociado a este evento se utiliza para mostrar un mensaje al usuario

preguntándole si está seguro de que desea eliminar el registro que ha seleccionado.

5. Evento Al bajar una tecla del formulario ProfesoresAgregar El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

6. Evento Al ocurrir un error del formulario ProfesoresAgregar El código asociado a este evento se utiliza para mostrar un mensaje de error cuando se

produce un error desconocido.

7. Evento Al no estar en la lista del cuadro combinado CCDedicacion Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

8. Evento Al hacer clic del botón de comando BCEditar El código asociado a este evento se utiliza para:

Page 25: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 76 de 197

Desbloquear la edición del registro mostrado en el formulario, es decir, podemos

modificar los datos que aparecen en el formulario.

Activar el botón de comando BCGuardarReg.

Desactivar los siguientes botones de comando: BCEditar y BCEliminar.

9. Evento Al hacer clic del botón de comando BCGuardarReg El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando si falta por rellenar algún campo requerido.

Guardar el nuevo registro, o los cambios realizados en él si ya había sido guardado

previamente.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCNuevoReg y BCEliminar.

Desactivar el botón de comando BCGuardarReg.

10. Evento Al hacer clic del botón de comando BCNuevoReg El código asociado a este evento se utiliza para cerrar el formulario Profesores – Nuevo

registro y abrirlo de nuevo.

11. Evento Al hacer clic del botón de comando BCEliminar El código asociado a este evento se utiliza para:

Eliminar el registro mostrado en el formulario y mostrar un mensaje indicando que

dicho registro ha sido eliminado.

Actualizar las posiciones de la cola de la secuenciación de los tribunales tras la

eliminación de dicho registro.

Desbloquear la edición del formulario, es decir, podemos introducir datos en los

cuadros de texto y cuadros combinados del formulario.

Desactivar los siguientes botones de comando: BCEditar, BCGuardarReg,

BCNuevoReg y BCEliminar.

12. Evento Al hacer clic del botón de comando BCMostrarRegistros El código asociado a este evento se utiliza para:

Page 26: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 77 de 197

Cerrar el formulario Profesores – Nuevo registro y abrir el formulario Profesores.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Profesores – Nuevo registro, debido a que falta por rellenar algún

campo requerido o porque se ha detectado otro registro con el mismo profesor

(nombre y apellidos). Este mensaje pregunta al usuario si desea salir del formulario

Profesores – Nuevo registro sin guardar el nuevo registro o, por el contrario,

prefiere permanecer en dicho formulario para poder introducir las modificaciones

oportunas y guardar dicho registro.

13. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para:

Cerrar el formulario Profesores – Nuevo registro y regresar al formulario que

teníamos abierto anteriormente.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Profesores – Nuevo registro, debido a que falta por rellenar algún

campo requerido o porque se ha detectado otro registro con el mismo profesor

(nombre y apellidos). Este mensaje pregunta al usuario si desea salir del formulario

Profesores – Nuevo registro sin guardar el nuevo registro o, por el contrario,

prefiere permanecer en dicho formulario para poder introducir las modificaciones

oportunas y guardar dicho registro.

14. Evento Al hacer clic del botón de comando BCCerrar El código asociado a este evento se utiliza para:

Cerrar el formulario Profesores – Nuevo registro y abrir el formulario Panel

principal.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Profesores – Nuevo registro, debido a que falta por rellenar algún

campo requerido o porque se ha detectado otro registro con el mismo profesor

(nombre y apellidos). Este mensaje pregunta al usuario si desea salir del formulario

Profesores – Nuevo registro sin guardar el nuevo registro o, por el contrario,

prefiere permanecer en dicho formulario para poder introducir las modificaciones

oportunas y guardar dicho registro.

Page 27: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 78 de 197

6.4.- Formulario Proyectos El aspecto que presenta el formulario Proyectos es el siguiente:

Figura 6.4.a

Este formulario muestra toda la información asociada a los proyectos fin de carrera que

dirige el Departamento de Organización Industrial y Gestión de Empresas de la

Universidad de Sevilla. Los registros de este formulario proceden de la tabla Pfc de la

base de datos y se muestran de uno en uno.

En la figura 6.4.a podemos ver que en la barra de título aparece el título del formulario:

Proyectos fin de carrera. Para referirnos a este formulario, podemos hacerlo por su

nombre (Proyectos) o bien por su título (Proyectos fin de carrera).

También podemos apreciar que el formulario cuenta con varias fichas, es decir, varias

páginas dentro del mismo formulario. Más concretamente, vemos que en la figura 6.4.a

se encuentra seleccionada la ficha titulada Proyecto fin de carrera. Existen además otras

cuatro fichas cuyo aspecto mostramos a continuación:

Page 28: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 79 de 197

Figura 6.4.b – Ficha Autor

Figura 6.4.c – Ficha Tutor

Page 29: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 80 de 197

Figura 6.4.d – Ficha Calificación

Figura 6.4.e – Ficha Tribunal

Page 30: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 81 de 197

6.4.1.- Controles Vamos a realizar una descripción de cada uno de los controles que posee el formulario

Proyectos fin de carrera, lo cual nos ayudará a comprender el funcionamiento de este

formulario.

1. Ficha Proyecto

Es la ficha seleccionada en la figura 6.4.a. Se titula Proyecto fin de carrera aunque

su nombre es simplemente Proyecto. Para referirnos a esta ficha, podemos hacerlo

por su nombre (Proyecto) o bien por su título (Proyecto fin de carrera).

A esta ficha pertenecen los siguientes controles del formulario: CTCursoAcad1,

CTCursoAcad2, CTFEntrSecr, CTTitulo y CTResumen.

Contiene el título del proyecto fin de carrera, un resumen del mismo, el curso

académico y la fecha de entrada en Secretaría de dicho proyecto fin de carrera.

2. Ficha Autor

Es la ficha seleccionada en la figura 6.4.b. Se titula Autor, por lo que en este caso

coinciden el nombre y el título de la ficha.

A esta ficha pertenecen los siguientes controles del formulario: CTAp1Autor,

CTAp2Autor, CCTratamiento, CTNombAutor, CCTitulacion, CCPlanEstudios y

CCIntensificacion.

Contiene el nombre y apellidos del autor del proyecto fin de carrera (es decir, del

alumno), así como su titulación, plan de estudios y especialidad o intensificación.

3. Ficha Tutor

Es la ficha seleccionada en la figura 6.4.c. Se titula Tutor, por lo que en este caso

coinciden el nombre y el título de la ficha.

A esta ficha pertenecen los siguientes controles del formulario: CCNumTutores,

SFTutores, BCSelTut, BCElimTut y BCProfTut.

Contiene al tutor o tutores del proyecto fin de carrera.

Page 31: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 82 de 197

4. Ficha Calificacion

Es la ficha seleccionada en la figura 6.4.d. Se titula Calificación aunque su nombre

es Calificacion (sin tilde). Para referirnos a esta ficha, podemos hacerlo por su

nombre (Calificacion) o bien por su título (Calificación).

A esta ficha pertenecen los siguientes controles del formulario: CTCalifNum y

CCCalifAlfanum.

Contiene la calificación numérica y alfanumérica otorgada al proyecto fin de carrera

por el tribunal.

5. Ficha Tribunal

Es la ficha seleccionada en la figura 6.4.e. Se titula Tribunal, por lo que en este caso

coinciden el nombre y el título de la ficha.

A esta ficha pertenecen los siguientes controles del formulario: SFTribunalPfc,

BCSelProf, BCElimProf, BCProfTrib, BCAsigAutCargos y BCAsigManCargos.

Contiene a los profesores del tribunal encargado de evaluar el proyecto fin de

carrera.

6. Cuadro de texto CTCursoAcad1

Pertenece a la ficha Proyecto fin de carrera. La etiqueta titulada Curso académico

está asociada a los cuadros de texto CTCursoAcad1 y CTCursoAcad2.

Muestra el campo CursoAcad1 de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 4.

Máscara de entrada: 0000;_

La máscara de entrada sirve para que los usuarios introduzcan en el cuadro de

texto valores que se ajustan a un determinado formato, en este caso el formato

de un año, o sea, un número entero positivo con cuatro cifras. Usaremos el guión

bajo como carácter marcador.

Regla de validación: entre 1964 y 2100 (ambos inclusive).

La regla de validación sirve para que los datos introducidos en el cuadro de texto

no infrinjan dicha regla.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Page 32: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 83 de 197

Permitir longitud cero: no.

Cada curso académico esta compuesto por dos años: por ejemplo, el curso

académico 2004/2005 está formado por los años 2004 y 2005. El cuadro de texto

CTCursoAcad1 contiene el primero de los años del curso académico (o sea, en el

ejemplo sería el año 2004).

7. Cuadro de texto CTCursoAcad2

Pertenece a la ficha Proyecto fin de carrera. La etiqueta titulada Curso académico

está asociada a los cuadros de texto CTCursoAcad1 y CTCursoAcad2.

Muestra el campo CursoAcad2 de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 4.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Cada curso académico esta compuesto por dos años: por ejemplo, el curso

académico 2004/2005 está formado por los años 2004 y 2005. El cuadro de texto

CTCursoAcad2 contiene el segundo de los años del curso académico (o sea, en el

ejemplo sería el año 2005).

Está bloqueado, es decir, no podemos modificar el contenido de este cuadro de

texto. El segundo año del curso académico se escribe automáticamente en

CTCursoAcad2 cuando introducimos el primer año de dicho curso en

CTCursoAcad1. Calcular el segundo año a partir del primero es muy sencillo, basta

con sumarle uno.

8. Cuadro de texto CTFEntrSecr

Pertenece a la ficha Proyecto fin de carrera y tiene asociada una etiqueta titulada

Fecha de entrada en Secretaría.

Muestra el campo FEntrSecr de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: fecha/hora.

Formato: fecha corta (por ejemplo: 20/05/2005)

Máscara de entrada: 00/00/0000;_

Page 33: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 84 de 197

La máscara de entrada sirve para que los usuarios introduzcan en el cuadro de

texto valores que se ajustan a un determinado formato, en este caso el formato de

fecha corta. Usaremos el guión bajo como carácter marcador.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Contiene, por tanto, la fecha de entrada en Secretaría del proyecto fin de carrera.

9. Cuadro de texto CTTitulo

Pertenece a la ficha Proyecto fin de carrera y tiene asociada una etiqueta titulada

Título.

Muestra el campo Titulo de la tabla Pfc de la base de datos. Este campo tiene las

siguientes propiedades:

Tipo de datos: memo (es decir, texto extenso o combinación extensa de texto y

números: hasta 65.535 caracteres).

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Contiene, por tanto, el título del proyecto fin de carrera.

10. Cuadro de texto CTResumen

Pertenece a la ficha Proyecto fin de carrera y tiene asociada una etiqueta titulada

Resumen.

Muestra el campo Resumen de la tabla Pfc de la base de datos. Este campo tiene las

siguientes propiedades:

Tipo de datos: memo (es decir, texto extenso o combinación extensa de texto y

números: hasta 65.535 caracteres).

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Permitir longitud cero: sí.

Contiene, por tanto, un resumen del proyecto fin de carrera.

11. Cuadro de texto CTAp1Autor

Pertenece a la ficha Autor y tiene asociada una etiqueta titulada Primer apellido.

Muestra el campo Ap1Autor de la tabla Pfc de la base de datos. Este campo tiene las

siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Page 34: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 85 de 197

Tamaño del campo: el número máximo de caracteres es de 50.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Contiene, por tanto, el primer apellido del autor del proyecto fin de carrera, es decir,

el primer apellido del alumno.

12. Cuadro de texto CTAp2Autor

Pertenece a la ficha Autor y tiene asociada una etiqueta titulada Segundo apellido.

Muestra el campo Ap2Autor de la tabla Pfc de la base de datos. Este campo tiene las

siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 50.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Permitir longitud cero: sí.

Contiene, por tanto, el segundo apellido del autor del proyecto fin de carrera, es

decir, el segundo apellido del alumno.

13. Cuadro combinado CCTratamiento

Pertenece a la ficha Autor y está situado justo a la izquierda del cuadro de texto

CTNombAutor, con el cual comparte la etiqueta titulada Nombre.

Muestra el campo Tratamiento de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 2.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Tiene como origen una lista formada por dos valores: “D.” y “Dª”

Recoge, por tanto, si el autor del proyecto fin de carrera debe ser tratado como Don

o como Doña.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

Page 35: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 86 de 197

14. Cuadro de texto CTNombAutor

Pertenece a la ficha Autor y está situado justo a la derecha del cuadro combinado

CCTratamiento, con el cual comparte la etiqueta titulada Nombre.

Muestra el campo NombAutor de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 50.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Contiene, por tanto, el nombre del autor del proyecto fin de carrera, es decir, el

nombre del alumno.

15. Cuadro combinado CCTitulacion

Pertenece a la ficha Autor y tiene asociada una etiqueta titulada Titulación.

Muestra el campo TitulacionID de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT Titulaciones.TitulacionID, Titulaciones.Titulacion FROM Titulaciones

ORDER BY Titulaciones.Titulacion;”

Esta consulta genera una tabla con dos columnas, que son los campos TitulacionID

y Titulacion de la tabla Titulaciones, y tantas filas como registros contiene la tabla

Titulaciones. Los valores que aparecen en la lista desplegable del cuadro combinado

son los del campo Titulacion mientras que en la tabla Pfc se guardan los valores del

campo TitulacionID debido a que tiene menor tamaño.

Contiene, por tanto, la titulación a la que pertenece el autor del proyecto fin de

carrera, es decir, la titulación del alumno.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

Page 36: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 87 de 197

16. Cuadro combinado CCPlanEstudios

Pertenece a la ficha Autor y tiene asociada una etiqueta titulada Plan de estudios.

Muestra el campo PlanEstudiosID de la tabla Pfc de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT PlanesEstudios.PlanEstudiosID, PlanesEstudios.PlanEstudios

FROM PlanesEstudios

WHERE PlanesEstudios.TitulacionID LIKE ‘” & CCTitulacion & “’

ORDER BY PlanesEstudios.PlanEstudios;”

Esta consulta genera una tabla con dos columnas, que son los campos

PlanEstudiosID y PlanEstudios de la tabla PlanesEstudios, y tantas filas como

registros hay en la tabla PlanesEstudios en los que el valor del campo TitulacionID

coincide con el valor seleccionado en el cuadro combinado CCTitulacion. Es decir,

en la lista desplegable del cuadro combinado CCPlanEstudios aparecen los planes

de estudios correspondientes a la titulación seleccionada en el cuadro combinado

CCTitulacion. Además, los valores que aparecen en la lista desplegable del cuadro

combinado CCPlanEstudios son los del campo PlanEstudios mientras que en la

tabla Pfc se guardan los valores del campo PlanEstudiosID debido a que tiene

menor tamaño.

Contiene, por tanto, el plan de estudios al que pertenece el autor del proyecto fin de

carrera, es decir, el plan de estudios del alumno.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

17. Cuadro combinado CCIntensificacion

Pertenece a la ficha Autor y tiene asociada una etiqueta titulada

Intensificación/Especialidad.

Muestra el campo IntensificacionID de la tabla Pfc de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: número.

Page 37: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 88 de 197

Tamaño del campo: entero largo.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT Intensificaciones.IntensificacionID, Intensificaciones.Intensificacion

FROM Intensificaciones

WHERE Intensificaciones.PlanEstudiosID LIKE ‘” & CCPlanEstudios & “’

ORDER BY Intensificaciones.Intensificacion;”

Esta consulta genera una tabla con dos columnas, que son los campos

IntensificacionID e Intensificacion de la tabla Intensificaciones, y tantas filas como

registros hay en la tabla Intensificaciones en los que el valor del campo

PlanEstudiosID coincide con el valor seleccionado en el cuadro combinado

CCPlanEstudios. Es decir, en la lista desplegable del cuadro combinado

CCIntensificacion aparecen las intensificaciones o especialidades correspondientes

al plan de estudios seleccionado en el cuadro combinado CCPlanEstudios. Además,

los valores que aparecen en la lista desplegable del cuadro combinado

CCIntensificacion son los del campo Intensificacion mientras que en la tabla Pfc se

guardan los valores del campo IntensificacionID debido a que tiene menor tamaño.

Contiene, por tanto, la intensificación o especialidad a la que pertenece el autor del

proyecto fin de carrera, es decir, la intensificación o especialidad del alumno.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

18. Cuadro combinado CCNumTutores

Pertenece a la ficha Tutor y tiene asociada una etiqueta titulada Número de tutores.

Muestra el campo NumTutores de la tabla Pfc de la base de datos. Este campo tiene

las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero, o sea, puede almacenar números entre -32.768 y

32.767 (no admite fracciones).

Valor predeterminado: 1.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Page 38: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 89 de 197

Tiene como origen la tabla NumeroTutores de la base de datos. Por tanto, los

valores que aparecen en la lista desplegable del cuadro combinado son los valores

del campo NumTutores de la tabla NumeroTutores.

Contiene, por tanto, el número de tutores que dirigen el proyecto fin de carrera.

19. Subformulario SFTutores

Pertenece a la ficha Tutor y no lleva asociada ninguna etiqueta.

Un subformulario no es más que un formulario que se inserta en otro. El formulario

primario se denomina formulario principal, y el formulario dentro del formulario se

denomina subformulario. En este caso, el formulario principal es el formulario

Proyectos y el subformulario recibe el nombre de SFTutores.

Los registros de este subformulario proceden de la tabla Tutores de la base de datos,

mientras que los del formulario Proyectos provienen de la tabla Pfc como ya

sabemos. La relación Pfc – Tutores es uno a varios, por lo que el formulario

principal muestra la parte “uno” de la relación, es decir, el proyecto fin de carrera en

cuestión, mientras que el subformulario muestra la parte “varios” de la relación, o

sea, los tutores que dirigen dicho proyecto fin de carrera.

Recoge, por tanto, el tutor o los tutores que dirigen el proyecto fin de carrera.

Contiene tres cuadros de texto que se titulan Primer apellido, Segundo apellido y

Nombre, los cuales recogen el nombre y los dos apellidos de cada tutor.

Está bloqueado, es decir, no podemos modificar el contenido de los cuadros de

texto.

20. Botón de comando BCSelTut

Pertenece a la ficha Tutor y tiene asociada una etiqueta titulada Seleccionar.

Al hacer clic sobre este botón abrimos el formulario Seleccionar tutor.

21. Botón de comando BCElimTut

Pertenece a la ficha Tutor y tiene asociada una etiqueta titulada Eliminar.

Al hacer clic sobre este botón eliminamos el tutor que se encuentra seleccionado en

el subformulario SFTutores.

Page 39: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 90 de 197

22. Botón de comando BCProfTut

Pertenece a la ficha Tutor y tiene asociada una etiqueta titulada Ir a Profesores.

Al hacer clic sobre este botón cerramos el formulario Proyectos fin de carrera y

abrimos el formulario Profesores, de tal forma que el registro mostrado en el

formulario Profesores corresponde al profesor-tutor que estaba seleccionado en el

subformulario SFTutores del formulario Proyectos fin de carrera.

23. Cuadro de texto CTCalifNum

Pertenece a la ficha Calificación y tiene asociada una etiqueta titulada Calificación

numérica.

Muestra el campo CalifNum de la tabla Pfc de la base de datos. Este campo tiene las

siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: simple.

Regla de validación: entre 0 y 10 (ambos inclusive).

La regla de validación sirve para que los datos introducidos en el cuadro de texto

no infrinjan dicha regla.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Contiene, por tanto, la calificación numérica otorgada al proyecto fin de carrera por

el tribunal.

24. Cuadro combinado CCCalifAlfanum

Pertenece a la ficha Calificación y tiene asociada una etiqueta titulada Calificación

alfanumérica.

Muestra el campo CalifAlfanumID de la tabla Pfc de la base de datos. Este campo

tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Tiene como origen la tabla Calificaciones de la base de datos. Esta tabla posee dos

campos, que son CalifAlfanumID y CalifAlfanum. Los valores que aparecen en la

lista desplegable del cuadro combinado son los del campo CalifAlfanum mientras

Page 40: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 91 de 197

que en la tabla Pfc se guardan los valores del campo CalifAlfanumID debido a que

tiene menor tamaño.

Contiene, por tanto, la calificación alfanumérica otorgada al proyecto fin de carrera

por el tribunal

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

La calificación alfanumérica que aparece en el cuadro combinado CCCalifAlfanum

se selecciona automáticamente si introducimos una calificación numérica en el

cuadro de texto CTCalifNum, de modo que nunca se contradicen ambas

calificaciones.

25. Subformulario SFTribunalPfc

Pertenece a la ficha Tribunal y no lleva asociada ninguna etiqueta.

Sabemos que un subformulario es un formulario que se inserta en otro. El

formulario primario se denomina formulario principal, y el formulario dentro del

formulario se denomina subformulario. En este caso, el formulario principal es el

formulario Proyectos y el subformulario recibe el nombre de SFTribunalPfc.

Los registros de este subformulario proceden de la tabla TribunalPfc de la base de

datos, mientras que los del formulario Proyectos provienen de la tabla Pfc como ya

sabemos. La relación Pfc – TribunalPfc es uno a varios, por lo que el formulario

principal muestra la parte “uno” de la relación, es decir, el proyecto fin de carrera en

cuestión, mientras que el subformulario muestra la parte “varios” de la relación, o

sea, los profesores del tribunal encargado de evaluar dicho proyecto fin de carrera.

Recoge, por tanto, los profesores del tribunal encargado de evaluar el proyecto fin

de carrera.

Contiene un cuadro combinado titulado Cargo y tres cuadros de texto que se titulan

Primer apellido, Segundo apellido y Nombre. Los cuadros de texto muestran el

nombre y los dos apellidos de cada profesor del tribunal mientras que el cuadro

combinado recoge el cargo que desempeña cada profesor dentro del tribunal. En la

lista desplegable del cuadro combinado aparecen tres posibles cargos, que son los de

Presidente, Vocal y Secretario. Los tres cuadros de texto se encuentran bloqueados,

por lo que resulta imposible modificar su contenido. El cuadro combinado, sin

embargo, no está bloqueado.

Page 41: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 92 de 197

Está bloqueado, es decir, no podemos modificar el contenido de los cuadros de texto

ni tampoco el del cuadro combinado. Si el subformulario no estuviese bloqueado,

sólo podríamos modificar el contenido del cuadro combinado puesto que los cuadros

de texto se encuentran bloqueados ya de por sí.

En la figura 6.4.e podemos ver que debajo del subformulario SFTribunalPfc aparece

una etiqueta con el siguiente mensaje en letras de color rojo: “¡ALERTA:

COINDIDENCIA ENTRE MIEMBROS DEL TRIBUNAL Y TUTOR!”. Este

mensaje se muestra en el caso de que algún profesor aparezca tanto en el

subformulario SFTribunalPfc como en el subformulario SFTutores.

26. Botón de comando BCSelProf

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Seleccionar.

Al hacer clic sobre este botón abrimos el formulario Seleccionar profesor.

27. Botón de comando BCElimProf

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Eliminar.

Al hacer clic sobre este botón eliminamos el profesor que se encuentra seleccionado

en el subformulario SFTribunalPfc.

28. Botón de comando BCProfTrib

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Ir a Profesores.

Al hacer clic sobre este botón cerramos el formulario Proyectos fin de carrera y

abrimos el formulario Profesores, de tal forma que el registro mostrado en el

formulario Profesores corresponde al profesor que estaba seleccionado en el

subformulario SFTribunalPfc del formulario Proyectos fin de carrera.

29. Botón de comando BCAsigAutCargos

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Asignación

automática de cargos.

Al hacer clic sobre este botón se asignan de forma automática los cargos que

desempeñan los miembros del tribunal. Para ello es necesario que el tribunal esté

formado por tres miembros. Recordemos que en función de la categoría, la

Page 42: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 93 de 197

dedicación y la antigüedad (por este orden de prioridad) que posee cada uno de los

tres miembros del tribunal, ocuparán los cargos de presidente, vocal y secretario de

dicho tribunal.

30. Botón de comando BCAsigManCargos

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Asignación

manual de cargos.

Al hacer clic sobre este botón desbloqueamos el subformulario SFTribunalPfc, lo

cual nos permite modificar los cargos de los profesores del tribunal.

31. Botón de comando BCEditar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Editar

registro.

Al hacer clic sobre este botón desbloqueamos la edición del registro mostrado en el

formulario, es decir, podemos modificar los datos que aparecen en el formulario.

32. Botón de comando BCGuardarReg

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Guardar

registro.

Al hacer clic sobre este botón bloqueamos la edición del registro mostrado en el

formulario y se guardan los cambios realizados en dicho registro.

33. Botón de comando BCNuevoReg

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Nuevo

registro.

Al hacer clic sobre este botón cerramos el formulario Proyectos fin de carrera y

abrimos el formulario Proyectos fin de carrera – Nuevo registro.

34. Botón de comando BCEliminar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Eliminar

registro.

Al hacer clic sobre este botón eliminamos el registro mostrado en el formulario.

Page 43: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 94 de 197

35. Botón de comando BCBuscar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Buscar

registros.

Al hacer clic sobre este botón abrimos el formulario BuscarProyectos (el título de

este formulario es Buscar registros).

36. Botón de comando BCOrdenar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Ordenar

registros.

Al hacer clic sobre este botón abrimos el formulario OrdenarProyectos (el título de

este formulario es Ordenar registros).

37. Botón de comando BCQuitarFiltro

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Quitar

filtro u orden.

Al hacer clic sobre este botón quitamos los filtros y ordenaciones existentes en el

formulario. De esta forma, utilizando los botones de desplazamiento y el cuadro de

número de registro, situados en la parte inferior izquierda del formulario, podemos

desplazarnos por todos los registros de la tabla Pfc, los cuales aparecen en el orden

en que han sido introducidos en dicha tabla.

38. Botón de comando BCCertifDef

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada

Certificado defensa PFC.

Al hacer clic sobre este botón abrimos el informe Certificado de defensa de

proyecto fin de carrera.

39. Botón de comando BCPfcCa

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Nº de

PFCs según curso académico.

Page 44: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 95 de 197

Al hacer clic sobre este botón abrimos el formulario ProyectosGraficos (el título de

este formulario es Configurar gráfico).

40. Botón de comando BCSesTrib

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Ir a

Sesiones de Tribunal.

Al hacer clic sobre este botón cerramos el formulario Proyectos fin de carrera y

abrimos el formulario Sesiones de tribunal, de tal forma que el registro mostrado en

el formulario Sesiones de tribunal es la sesión de tribunal a la cual está asignado el

proyecto fin de carrera que mostraba el formulario Proyectos fin de carrera cuando

hicimos clic sobre el botón BCSesTrib.

41. Botón de comando BCMostrarRegistros

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Mostrar

todos los registros.

Se encuentra siempre desactivado y su presencia se debe a razones puramente

estéticas. Este botón de comando se utiliza en el formulario Proyectos fin de carrera

– Nuevo registro para cerrar dicho formulario y abrir el formulario Proyectos fin de

carrera. Esto dos formularios cuentan con el mismo aspecto para que, al pasar de

uno a otro, no se note que hemos cambiado de formulario y parezcan un mismo

formulario. Por este motivo se han incluido los mismos controles en ambos

formularios, de tal forma que en cada formulario desactivamos aquellos controles

que sólo sirven para el otro formulario.

42. Botón de comando BCAtras

No pertenece a ninguna de las fichas. Está situado en la esquina inferior izquierda

del formulario y contiene la imagen de una flecha de color verde.

Al hacer clic sobre este botón cerramos el formulario Proyectos fin de carrera y

regresamos al formulario que teníamos abierto anteriormente.

Page 45: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 96 de 197

43. Botón de comando BCCerrar

No pertenece a ninguna de las fichas. Está situado en la esquina inferior derecha del

formulario y contiene la imagen de una letra “X” de color gris oscuro.

Al hacer clic sobre este botón cerramos el formulario Proyectos fin de carrera y

abrimos el formulario Panel principal.

6.4.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Al activar registro del formulario Proyectos Este evento se produce cuando el enfoque se desplaza a un registro, haciendo que sea el

registro actual, o cuando el formulario se actualiza o se somete a una nueva consulta.

El código asociado a este evento se utiliza para:

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCOrdenar, BCQuitarFiltro, BCCertifDef y BCPfcCa.

Desactivar los siguientes botones de comando: BCGuardarReg, BCSelTut,

BCElimTut, BCSelProf, BCElimProf, BCAsigAutCargos y BCAsigManCargos.

Mostrar un mensaje indicando que el registro anterior al actual ha sido actualizado si

es que dicho registro fue modificado y no fue guardado con anterioridad.

Introducir en el cuadro combinado CCPlanEstudios la consulta que proporciona los

valores que aparecen en la lista desplegable de dicho cuadro combinado.

Introducir en el cuadro combinado CCIntensificacion la consulta que proporciona

los valores que aparecen en la lista desplegable de dicho cuadro combinado.

Comprobar que en el tribunal del proyecto fin de carrera mostrado en el formulario

no se encuentra ninguno de los tutores que dirigen dicho proyecto. Si alguno de los

tutores figura también como miembro del tribunal, entonces aparece una etiqueta

situada justo debajo del subformulario SFTribunalPfc con el siguiente mensaje en

Page 46: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 97 de 197

letras de color rojo: “¡ALERTA: COINDIDENCIA ENTRE MIEMBROS DEL

TRIBUNAL Y TUTOR!”.

2. Evento Antes de actualizar del formulario Proyectos Este evento se produce antes de que se actualicen los datos de un registro.

El código asociado a este evento se utiliza para:

Impedir que se actualice un registro si se detecta que existe otro registro con el

mismo autor (nombre y apellidos) del proyecto fin de carrera.

En el caso de que se deshagan los cambios realizados en un registro debido a que se

ha encontrado otro registro con el mismo autor, introducir en el cuadro combinado

CCPlanEstudios la consulta que proporciona los valores que aparecen en la lista

desplegable de dicho cuadro combinado.

En el caso de que se deshagan los cambios realizados en un registro debido a que se

ha encontrado otro registro con el mismo autor, introducir en el cuadro combinado

CCIntensificacion la consulta que proporciona los valores que aparecen en la lista

desplegable de dicho cuadro combinado.

3. Evento Al Eliminar del formulario Proyectos Este evento se produce cuando el usuario hace clic sobre el botón de comando

BCEliminar para eliminar un registro, pero antes de que el registro se elimine

realmente.

El código asociado a este evento se utiliza para mostrar un mensaje al usuario

preguntándole si está seguro de que desea eliminar el registro que ha seleccionado.

4. Evento Al abrir del formulario Proyectos Este evento se produce cuando se abre el formulario, pero antes de que se muestre el

primer registro.

El código asociado a este evento se utiliza para que el formulario Proyectos fin de

carrera muestre el último registro de la tabla Pfc. Además, si en esta tabla no existiera

Page 47: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 98 de 197

ningún registro, se muestra un mensaje explicando tal circunstancia y a continuación se

cierra el formulario Proyectos fin de carrera y se abre el formulario Proyectos fin de

carrera – Nuevo registro para que podamos introducir el primer registro.

5. Evento Al cerrar del formulario Proyectos Este evento se produce cuando el formulario se cierra y desaparece de la pantalla.

El código asociado a este evento se utiliza para mostrar un mensaje indicando que el

último registro mostrado por el formulario ha sido actualizado si es que dicho registro

fue modificado y no fue guardado con anterioridad.

6. Evento Al bajar una tecla del formulario Proyectos El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

7. Evento Al ocurrir un error del formulario Proyectos El código asociado a este evento se utiliza para mostrar un mensaje de error cuando se

produce un error desconocido.

8. Evento Después de actualizar del cuadro de texto CTCursoAcad1 Este evento se produce después de que se actualicen los datos modificados en el cuadro

de texto.

El código asociado a este evento se utiliza para que el segundo año del curso académico

aparezca automáticamente en CTCursoAcad2 una vez hemos introducido el primer año

de dicho curso en CTCursoAcad1. Calcular el segundo año a partir del primero es muy

sencillo, basta con sumarle uno.

Page 48: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 99 de 197

9. Evento Después de actualizar del cuadro combinado CCTitulacion Este evento se produce después de que se actualicen los datos modificados en el cuadro

combinado.

El código asociado a este evento se utiliza para:

Dejar en blanco el contenido del cuadro combinado CCPlanEstudios e introducir en

él la consulta que proporciona los valores que aparecen en la lista desplegable de

dicho cuadro combinado.

Dejar en blanco el tanto el contenido como la lista desplegable del cuadro

combinado CCIntensificacion.

10. Evento Después de actualizar del cuadro combinado CCPlanEstudios Este evento se produce después de que se actualicen los datos modificados en el cuadro

combinado.

El código asociado a este evento se utiliza para dejar en blanco el contenido del cuadro

combinado CCIntensificacion e introducir en él la consulta que proporciona los valores

que aparecen en la lista desplegable de dicho cuadro combinado.

11. Evento Antes de actualizar del cuadro combinado CCNumTutores Este evento se produce antes de que se actualicen los datos del cuadro combinado.

El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si seleccionamos un número de tutores menor de los que ya contiene

el subformulario SFTutores.

12. Evento Al no estar en la lista del cuadro combinado CCNumTutores Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

Page 49: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 100 de 197

13. Evento Al hacer clic del botón de comando BCSelTut El código asociado a este evento se utiliza para abrir el formulario SeleccionarTutor (el

título de este formulario es Seleccionar tutor).

14. Evento Al hacer clic del botón de comando BCElimTut El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

subformulario SFTutores el tutor que ha seleccionado.

En el caso de que no hayamos seleccionado ningún tutor aparece un mensaje

indicando tal circunstancia.

Eliminar del subformulario SFTutores el tutor seleccionado si el usuario así lo

desea.

Comprobar que en el tribunal del proyecto fin de carrera mostrado en el formulario

no figura ninguno de los tutores que dirigen dicho proyecto. Si el tutor eliminado

pertenece al tribunal, entonces desaparecerá la etiqueta situada justo debajo del

subformulario SFTribunalPfc con el siguiente mensaje en letras de color rojo:

“¡ALERTA: COINDIDENCIA ENTRE MIEMBROS DEL TRIBUNAL Y

TUTOR!”.

Mostrar un mensaje indicando el número de tutores que faltan por asignar si es que

falta alguno.

15. Evento Al hacer clic del botón de comando BCProfTut El código asociado a este evento se utiliza para:

Cerrar el formulario Proyectos fin de carrera y abrir el formulario Profesores, de

tal forma que el registro mostrado en el formulario Profesores corresponde al

profesor-tutor que estaba seleccionado en el subformulario SFTutores del

formulario Proyectos fin de carrera.

En el caso de que no hayamos seleccionado ningún tutor aparece un mensaje

indicando tal circunstancia.

Page 50: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 101 de 197

Si el profesor seleccionado en el subformulario SFTutores no se encuentra entre los

registros del formulario Profesores, entonces se muestra un mensaje indicando que

dicho profesor fue eliminado desde el formulario Profesores con anterioridad.

16. Evento Después de actualizar del cuadro de texto CTCalifNum Este evento se produce después de que se actualicen los datos modificados en el cuadro

de texto.

El código asociado a este evento se utiliza para introducir en el cuadro combinado

CCCalifAlfanum la calificación alfanumérica que se corresponde con la calificación

numérica que acabamos de introducir en el cuadro de texto CTCalifNum.

17. Evento Antes de actualizar del cuadro combinado CCCalifAlfanum Este evento se produce antes de que se actualicen los datos del cuadro combinado.

El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si seleccionamos una calificación alfanumérica que no se

corresponde con la calificación numérica introducida en el cuadro de texto CTCalifNum.

18. Evento Al salir del subformulario SFTribunalPfc Este evento se produce inmediatamente antes de que el subformulario pierda el enfoque

en favor de otro control del mismo formulario.

El código asociado a este evento se utiliza para:

Activar el botón de comando BCAsigManCargos si se encuentran desactivados los

botones de comando BCAsigManCargos y BCEditar.

Bloquear el subformulario SFTribunalPfc si se encuentran desactivados los botones

de comando BCAsigManCargos y BCEditar.

19. Evento Al hacer clic del botón de comando BCSelProf El código asociado a este evento se utiliza para abrir el formulario Seleccionar profesor.

Page 51: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 102 de 197

20. Evento Al hacer clic del botón de comando BCElimProf El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

tribunal al profesor que ha seleccionado.

En el caso de que no hayamos seleccionado ningún miembro del tribunal aparece un

mensaje indicando tal circunstancia.

Eliminar del tribunal al profesor seleccionado si el usuario así lo desea.

Comprobar que en el tribunal del proyecto fin de carrera mostrado en el formulario

no figura ninguno de los tutores que dirigen dicho proyecto. Si el profesor eliminado

del tribunal es el tutor del proyecto fin de carrera, entonces desaparecerá la etiqueta

situada justo debajo del subformulario SFTribunalPfc con el siguiente mensaje en

letras de color rojo: “¡ALERTA: COINDIDENCIA ENTRE MIEMBROS DEL

TRIBUNAL Y TUTOR!”.

Mostrar un mensaje indicando el número de miembros del tribunal que faltan por

asignar si es que falta alguno.

21. Evento Al hacer clic del botón de comando BCProfTrib El código asociado a este evento se utiliza para:

Cerrar el formulario Proyectos fin de carrera y abrir el formulario Profesores, de tal

forma que el registro mostrado en el formulario Profesores corresponde al profesor

que estaba seleccionado en el subformulario SFTribunalPfc del formulario

Proyectos fin de carrera.

En el caso de que no hayamos seleccionado ningún profesor aparece un mensaje

indicando tal circunstancia.

Si el profesor seleccionado en el subformulario SFTribunalPfc no se encuentra entre

los registros del formulario Profesores, entonces se muestra un mensaje indicando

que dicho profesor fue eliminado desde el formulario Profesores con anterioridad.

22. Evento Al hacer clic del botón de comando BCAsigAutCargos El código asociado a este evento se utiliza para:

Asignar de forma automática los cargos que desempeñan los miembros del tribunal.

Para ello es necesario que el tribunal esté formado por tres miembros. Recordemos

Page 52: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 103 de 197

que en función de la categoría, la dedicación y la antigüedad (por este orden de

prioridad) que posee cada uno de los tres miembros del tribunal, ocuparán los cargos

de presidente, vocal y secretario de dicho tribunal.

Si el número de miembros del tribunal no es igual a tres, entonces aparece un

mensaje indicando que no es posible la asignación automática de cargos.

Si alguno de los profesores del tribunal no se encuentra entre los registros del

formulario Profesores, entonces se muestra un mensaje indicando que no es posible

asignar automáticamente los cargos debido a que alguno de los profesores del

tribunal fue eliminado con anterioridad desde el formulario Profesores.

23. Evento Al hacer clic del botón de comando AsigManCargos El código asociado a este evento se utiliza para:

Desactivar el botón de comando BCAsigManCargos.

Desbloquear el subformulario SFTribunalPfc, lo cual nos permite modificar los

cargos de los profesores del tribunal.

En el caso de que el tribunal no tenga ningún componente aparece un mensaje

indicando tal circunstancia.

24. Evento Al hacer clic del botón de comando BCEditar El código asociado a este evento se utiliza para:

Desbloquear la edición del registro mostrado en el formulario, es decir, podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCGuardarReg, BCSelTut, BCElimTut,

BCSelProf, BCElimProf, BCAsigAutCargos y BCAsigManCargos.

Desactivar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCOrdenar, BCQuitarFiltro, BCCertifDef y BCPfcCa.

25. Evento Al hacer clic del botón de comando BCGuardarReg El código asociado a este evento se utiliza para:

Guardar los cambios realizados en el registro que muestra el formulario.

Mostrar un mensaje indicando que el registro ha sido actualizado.

Page 53: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 104 de 197

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCOrdenar, BCQuitarFiltro, BCCertifDef y BCPfcCa.

Desactivar los siguientes botones de comando: BCGuardarReg, BCSelTut,

BCElimTut, BCSelProf, BCElimProf, BCAsigAutCargos y BCAsigManCargos.

26. Evento Al hacer clic del botón de comando BCNuevoReg El código asociado a este evento se utiliza para cerrar el formulario Proyectos fin de

carrera y abrir el formulario Proyectos fin de carrera – Nuevo registro.

27. Evento Al hacer clic del botón de comando BCEliminar El código asociado a este evento se utiliza para:

Eliminar el proyecto fin de carrera mostrado en el formulario.

Mostrar un mensaje confirmando que dicho proyecto ha sido eliminado.

Si queremos eliminar un proyecto fin de carrera se encuentra asignado a una sesión

de tribunal cuyo tribunal no está vacío, entonces aparece un mensaje indicando que

no es posible la eliminación de dicho proyecto fin de carrera.

28. Evento Al hacer clic del botón de comando BCBuscar El código asociado a este evento se utiliza para abrir el formulario BuscarProyectos (el

título de este formulario es Buscar registros).

29. Evento Al hacer clic del botón de comando BCOrdenar El código asociado a este evento se utiliza para abrir el formulario OrdenarProyectos

(el título de este formulario es Ordenar registros).

30. Evento Al hacer clic del botón de comando BCQuitarFiltro El código asociado a este evento se utiliza para quitar los filtros y ordenaciones

existentes en el formulario, sin que cambie el registro mostrado por el formulario.

Page 54: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 105 de 197

31. Evento Al hacer clic del botón de comando BCCertifDef El código asociado a este evento se utiliza para abrir el informe Certificado de defensa

de proyecto fin de carrera.

32. Evento Al hacer clic del botón de comando BCPfcCa El código asociado a este evento se utiliza para abrir el formulario ProyectosGraficos

(el título de este formulario es Configurar gráfico).

33. Evento Al hacer clic del botón de comando BCSesTrib El código asociado a este evento se utiliza para:

Cerrar el formulario Proyectos fin de carrera y abrir el formulario Sesiones de

tribunal, de tal forma que el registro mostrado en el formulario Sesiones de tribunal

es la sesión de tribunal a la cual está asignado el proyecto fin de carrera que

mostraba el formulario Proyectos fin de carrera cuando hicimos clic sobre el botón

BCSesTrib.

En el caso de que el proyecto fin de carrera seleccionado no se encuentre asignado a

ninguna sesión de tribunal aparece un mensaje indicando tal circunstancia.

34. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para cerrar el formulario Proyectos fin de

carrera y regresar al formulario que teníamos abierto anteriormente.

35. Evento Al hacer clic del botón de comando BCCerrar El código asociado a este evento se utiliza para cerrar el formulario Proyectos fin de

carrera y abrir el formulario Panel principal.

6.4.3.- Informes Desde el formulario Proyectos fin de carrera podemos abrir el informe

CertificadoDefensaPfc haciendo clic sobre el botón de comando BCCertifDef. Este

informe se titula Certificado de defensa de proyecto fin de carrera y recoge toda la

Page 55: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 106 de 197

información asociada al proyecto fin de carrera mostrado en el formulario, es decir:

curso académico, título del proyecto, fecha de defensa, nombre y apellidos del autor (o

sea, del alumno) así como su titulación, plan de estudios e intensificación/especialidad,

el tutor o los tutores que dirigen el proyecto, los miembros del tribunal y la calificación

numérica y alfanumérica otorgada al proyecto por el tribunal. Además, al tratarse de un

certificado, se incluye la fecha actual y existe un espacio reservado para la firma del

Secretario/Subdirector/Director del Departamento.

Todas las páginas del informe cuentan con encabezado y pié de página que recogen la

siguiente información: logotipo de la Universidad de Sevilla, nombre del Departamento,

dirección de la Escuela Superior de Ingenieros, número de página y total de páginas del

informe.

Si queremos imprimir el informe tenemos todas las facilidades para ello: podemos

generar una vista previa del mismo, aplicar el zoom, seleccionar la impresora y las

opciones de impresión, configurar el tamaño y la posición del papel así como los

márgenes, etc.

6.4.4.- Gráficos Desde el formulario Proyectos fin de carrera podemos generar un gráfico que muestra

el número de proyectos fin de carrera dirigidos por el Departamento según curso

académico.

Haciendo clic sobre el botón de comando BCPfcCa del formulario Proyectos fin de

carrera abrimos el formulario ProyectosGraficos, el cual nos permite configurar el

gráfico que mostrará el número de proyectos fin de carrera dirigidos por el

Departamento según curso académico. Las opciones de configuración son las

siguientes:

Tipo de gráfico: barra (gráfico GrafPfcBarra) o circular (gráfico GrafPfcCir).

Cursos académicos: podemos seleccionar todos los cursos académicos o

solamente aquéllos que nos interesen.

Page 56: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 107 de 197

Si queremos imprimir el gráfico tenemos todas las facilidades para ello: podemos

generar una vista previa del gráfico, aplicar el zoom, seleccionar la impresora y las

opciones de impresión, configurar el tamaño y la posición del papel así como los

márgenes, etc.

Page 57: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 108 de 197

6.5.- Formulario ProyectosAgregar El aspecto que presenta el formulario ProyectosAgregar es el siguiente:

Figura 6.5.a

En la figura 6.5.a podemos ver que en la barra de título aparece el título del formulario:

Proyectos fin de carrera – Nuevo registro. Para referirnos a este formulario, podemos

hacerlo por su nombre (ProyectosAgregar) o bien por su título (Proyectos fin de carrera

– Nuevo registro).

Si comparamos las figuras 6.4.a y 6.5.a podemos apreciar que el formulario Proyectos

fin de carrera y el formulario Proyectos fin de carrera – Nuevo registro cuentan con el

mismo aspecto. Con esto se pretende que, al pasar de uno a otro, no se note que hemos

cambiado de formulario y parezcan un mismo formulario. Así, se han incluido los

mismos controles en ambos formularios, de tal forma que en cada formulario

desactivamos aquellos controles que sólo sirven para el otro formulario.

El formulario Proyectos fin de carrera – Nuevo registro sirve, como su propio nombre

indica, para incluir nuevos proyectos fin de carrera en la base de datos, es decir, a través

Page 58: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 109 de 197

de este formulario podemos agregar nuevos registros a la tabla Pfc de la base de datos.

Además, cada vez que seleccionamos un profesor como tutor o como miembro del

tribunal, se agrega un nuevo registro a la tabla Tutores o a la tabla TribunalPfc

respectivamente.

Cuando el usuario está introduciendo un nuevo proyecto fin de carrera todavía no sabe

quiénes son los miembros del tribunal ni la calificación otorgada a dicho proyecto. Por

este motivo, tanto la ficha Calificación como la ficha Tribunal se encuentran

desactivadas en el formulario Proyectos fin de carrera – Nuevo registro. La selección

de los miembros del tribunal se realiza desde otro formulario titulado Sesiones de

tribunal o Sesiones de tribunal – Nuevo registro. También podemos modificar los

miembros que conforman el tribunal de cada proyecto fin de carrera desde la ficha

Tribunal del formulario Proyectos fin de carrera, por ejemplo cuando observemos que

alguno de los profesores del tribunal figura también como profesor-tutor.

6.5.1.- Controles Son los mismos que los del formulario Proyectos fin de carrera como ya hemos

comentado. Se encuentran desactivados los siguientes controles: BCBuscar,

BCOrdenar, BCQuitarFiltro, BCCertifDef, BCPfcCa y BCSesTrib. Además, al estar

desactivadas las fichas Calificación y Tribunal también lo están todos los controles

contenidos en ellas.

6.5.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Antes de insertar del formulario ProyectosAgregar Este evento se produce cuando el usuario escribe el primer carácter de un nuevo

registro, pero antes de que el registro se cree realmente.

Page 59: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 110 de 197

El código asociado a este evento se utiliza para activar el botón de comando

BCGuardarReg.

2. Evento Antes de actualizar del formulario ProyectosAgregar El código asociado a este evento se utiliza para:

Impedir que guardemos un registro si se detecta que existe otro registro con el

mismo autor (nombre y apellidos) del proyecto fin de carrera.

En el caso de que se deshagan los cambios realizados en un registro debido a que se

ha encontrado otro registro con el mismo autor, introducir en el cuadro combinado

CCPlanEstudios la consulta que proporciona los valores que aparecen en la lista

desplegable de dicho cuadro combinado.

En el caso de que se deshagan los cambios realizados en un registro debido a que se

ha encontrado otro registro con el mismo autor, introducir en el cuadro combinado

CCIntensificacion la consulta que proporciona los valores que aparecen en la lista

desplegable de dicho cuadro combinado.

3. Evento Al eliminar del formulario ProyectosAgregar El código asociado a este evento se utiliza para mostrar un mensaje al usuario

preguntándole si está seguro de que desea eliminar el registro que ha seleccionado.

4. Evento Al cargar del formulario ProyectosAgregar Este evento se produce cuando se abre el formulario y se muestran sus registros.

El código asociado a este evento se utiliza para introducir el primer año del curso

académico en el cuadro de texto CTCursoAcad1 y el segundo año del curso académico

en el cuadro de texto CTCursoAcad2, de acuerdo con la fecha actual.

5. Evento Al cerrar del formulario ProyectosAgregar El código asociado a este evento se utiliza para mostrar un mensaje indicando que el

nuevo registro ha sido guardado si no hemos utilizado anteriormente el botón de

comando BCGuardarReg para guardarlo.

Page 60: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 111 de 197

6. Evento Al bajar una tecla del formulario ProyectosAgregar El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

7. Evento Al ocurrir un error del formulario ProyectosAgregar El código asociado a este evento se utiliza para mostrar un mensaje de error cuando se

produce un error desconocido.

8. Evento Después de actualizar del cuadro de texto CTCursoAcad1 El código asociado a este evento se utiliza para que el segundo año del curso académico

aparezca automáticamente en CTCursoAcad2 una vez hemos introducido el primer año

de dicho curso en CTCursoAcad1. Calcular el segundo año a partir del primero es muy

sencillo, basta con sumarle uno.

9. Evento Después de actualizar del cuadro combinado CCTitulacion El código asociado a este evento se utiliza para:

Dejar en blanco el contenido del cuadro combinado CCPlanEstudios e introducir en

él la consulta que proporciona los valores que aparecen en la lista desplegable de

dicho cuadro combinado.

Dejar en blanco el tanto el contenido como la lista desplegable del cuadro

combinado CCIntensificacion.

10. Evento Después de actualizar del cuadro combinado CCPlanEstudios El código asociado a este evento se utiliza para dejar en blanco el contenido del cuadro

combinado CCIntensificacion e introducir en él la consulta que proporciona los valores

que aparecen en la lista desplegable de dicho cuadro combinado.

Page 61: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 112 de 197

11. Evento Antes de actualizar del cuadro combinado CCNumTutores El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si seleccionamos un número de tutores menor de los que ya contiene

el subformulario SFTutores.

12. Evento Al no estar en la lista del cuadro combinado CCNumTutores Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

13. Evento Al hacer clic del botón de comando BCSelTut El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando si falta por rellenar algún campo requerido.

Abrir el formulario SeleccionarTutorAgregar (el título de este formulario es

Seleccionar tutor).

14. Evento Al hacer clic del botón de comando BCElimTut El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

formulario SFTutores el tutor que ha seleccionado.

En el caso de que no hayamos seleccionado ningún tutor aparece un mensaje

indicando tal circunstancia.

Eliminar del subformulario SFTutores el tutor seleccionado si el usuario así lo

desea.

Mostrar un mensaje indicando el número de tutores que faltan por asignar si es que

falta alguno.

15. Evento Al hacer clic del botón de comando BCProfTut El código asociado a este evento se utiliza para:

Page 62: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 113 de 197

Cerrar el formulario Proyectos fin de carrera – Nuevo registro y abrir el formulario

Profesores, de tal forma que el registro mostrado en el formulario Profesores

corresponde al profesor-tutor que estaba seleccionado en el subformulario

SFTutores del formulario Proyectos fin de carrera – Nuevo registro.

En el caso de que no hayamos seleccionado ningún tutor aparece un mensaje

indicando tal circunstancia.

Si el profesor seleccionado en el subformulario SFTutores no se encuentra entre los

registros del formulario Profesores, entonces se muestra un mensaje indicando que

dicho profesor fue eliminado desde el formulario Profesores con anterioridad.

16. Evento Al hacer clic del botón de comando BCEditar El código asociado a este evento se utiliza para:

Desbloquear la edición del registro mostrado en el formulario, es decir, podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCGuardarReg, BCSelTut y

BCElimTut.

Desactivar los siguientes botones de comando: BCEditar y BCEliminar.

17. Evento Al hacer clic del botón de comando BCGuardarReg El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando si falta por rellenar algún campo requerido.

Guardar el nuevo registro, o los cambios realizados en él si ya había sido guardado

previamente.

Mostrar un mensaje indicando que el nuevo registro ha sido guardado.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCNuevoReg y BCEliminar.

Desactivar los siguientes botones de comando: BCGuardarReg, BCSelTut y

BCElimTut.

Page 63: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 114 de 197

18. Evento Al hacer clic del botón de comando BCNuevoReg El código asociado a este evento se utiliza para cerrar el formulario Proyectos fin de

carrera – Nuevo registro y abrirlo de nuevo.

19. Evento Al hacer clic del botón de comando BCEliminar El código asociado a este evento se utiliza para:

Eliminar el proyecto fin de carrera mostrado en el formulario.

Mostrar un mensaje confirmando que dicho proyecto ha sido eliminado.

Desbloquear la edición del formulario, es decir, podemos introducir datos en los

cuadros de texto y cuadros combinados del formulario.

Activar los siguientes botones de comando: BCSelTut y BCElimTut.

Desactivar los siguientes botones de comando: BCEditar, BCGuardarReg,

BCNuevoReg y BCEliminar.

Introducir el primer año del curso académico en el cuadro de texto CTCursoAcad1 y

el segundo año del curso académico en el cuadro de texto CTCursoAcad2, de

acuerdo con la fecha actual.

20. Evento Al hacer clic del botón de comando BCMostrarRegistros El código asociado a este evento se utiliza para:

Cerrar el formulario Proyectos fin de carrera – Nuevo registro y abrir el formulario

Proyectos fin de carrera.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Proyectos fin de carrera – Nuevo registro, debido a que falta por

rellenar algún campo requerido o porque se ha detectado otro registro con el mismo

autor (nombre y apellidos) del proyecto fin de carrera. Este mensaje pregunta al

usuario si desea salir del formulario Proyectos fin de carrera – Nuevo registro sin

guardar el nuevo registro o, por el contrario, prefiere permanecer en dicho

formulario para poder introducir las modificaciones oportunas y guardar dicho

registro.

Page 64: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 115 de 197

21. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para:

Cerrar el formulario Proyectos fin de carrera – Nuevo registro y regresar al

formulario que teníamos abierto anteriormente.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Proyectos fin de carrera – Nuevo registro, debido a que falta por

rellenar algún campo requerido o porque se ha detectado otro registro con el mismo

profesor (nombre y apellidos). Este mensaje pregunta al usuario si desea salir del

formulario Proyectos fin de carrera – Nuevo registro sin guardar el nuevo registro

o, por el contrario, prefiere permanecer en dicho formulario para poder introducir las

modificaciones oportunas y guardar dicho registro.

22. Evento Al hacer clic del botón de comando BCCerrar El código asociado a este evento se utiliza para:

Cerrar el formulario Proyectos fin de carrera – Nuevo registro y abrir el formulario

Panel principal.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Proyectos fin de carrera – Nuevo registro, debido a que falta por

rellenar algún campo requerido o porque se ha detectado otro registro con el mismo

profesor (nombre y apellidos). Este mensaje pregunta al usuario si desea salir del

formulario Proyectos fin de carrera – Nuevo registro sin guardar el nuevo registro

o, por el contrario, prefiere permanecer en dicho formulario para poder introducir las

modificaciones oportunas y guardar dicho registro.

Page 65: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 116 de 197

6.6.- Formulario SesionesDeTribunal El aspecto que presenta el formulario SesionesDeTribunal es el siguiente:

Figura 6.6.a

Este formulario muestra toda la información asociada a las sesiones de tribunal.

Llamamos sesión de tribunal al conjunto formado por el tribunal y los proyectos fin de

carrera que son evaluados por dicho tribunal. Cada tribunal está compuesto por tres

profesores del Departamento. Además, los tribunales se constituyen con una frecuencia

mensual, y cada tribunal puede evaluar un máximo de seis proyectos fin de carrera. Esto

quiere decir que si, por ejemplo, en el último mes se presentaron 14 proyectos fin de

carrera, habrá que generar tres tribunales diferentes, es decir, tres sesiones de tribunal,

dos de cinco proyectos y una de cuatro, si realizamos un reparto lo más homogéneo

posible.

En la figura 6.6.a podemos ver que en la barra de título aparece el título del formulario:

Sesiones de tribunal. Para referirnos a este formulario, podemos hacerlo por su nombre

(SesionesDeTribunal) o bien por su título (Sesiones de tribunal). Los registros de este

formulario proceden de la tabla SesionesDeTribunal de la base de datos y se muestran

de uno en uno.

Page 66: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 117 de 197

También podemos apreciar que el formulario cuenta con varias fichas, es decir, varias

páginas dentro del mismo formulario. Más concretamente, vemos que en la figura 6.6.a

se encuentra seleccionada la ficha titulada Sesión de tribunal. Existen además otras dos

fichas cuyo aspecto mostramos a continuación:

Figura 6.6.b – Ficha Proyectos fin de carrera

Figura 6.6.c – Ficha Tribunal

Page 67: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 118 de 197

6.6.1.- Controles Vamos a realizar una descripción de cada uno de los controles que posee el formulario

Sesiones de tribunal, lo cual nos ayudará a comprender el funcionamiento de este

formulario.

1. Ficha Sesion

Es la ficha seleccionada en la figura 6.6.a. Se titula Sesión de tribunal aunque su

nombre es simplemente Sesion. Para referirnos a esta ficha, podemos hacerlo por su

nombre (Sesion) o bien por su título (Sesión de tribunal).

A esta ficha pertenecen los siguientes controles del formulario: CTCursoAcad1,

CTCursoAcad2, CCMes, CTFechaDef, CTHoraDef y CCAulaDef.

Contiene el curso académico, el mes del año en el que se celebra la sesión de

tribunal, la fecha de defensa (día, mes y año) de los proyectos incluidos en la sesión,

la hora de celebración de la sesión de tribunal así como el aula o salón donde tiene

lugar dicha celebración.

2. Ficha Proyectos

Es la ficha seleccionada en la figura 6.6.b. Se titula Proyectos fin de carrera aunque

su nombre es simplemente Proyectos. Para referirnos a esta ficha, podemos hacerlo

por su nombre (Proyectos) o bien por su título (Proyectos fin de carrera).

A esta ficha pertenecen los siguientes controles del formulario: CCNumProyectos,

SFProyectos, BCSelProy, BCElimProy y BCProyectos.

Contiene los proyectos fin de carrera incluidos en la sesión de tribunal.

3. Ficha Tribunal

Es la ficha seleccionada en la figura 6.6.c. Se titula Tribunal, por lo que en este caso

coinciden el nombre y el título de la ficha.

A esta ficha pertenecen los siguientes controles del formulario: CCNumProfesores,

SFTribunal, BCSelTrib, BCElimProf, BCElimTrib, BCProfesores,

BCAsigAutCargos y BCAsigManCargos.

Page 68: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 119 de 197

Contiene a los profesores del tribunal encargado de evaluar los proyectos fin de

carrera incluidos en la sesión de tribunal.

4. Cuadro de texto CTCursoAcad1

Pertenece a la ficha Sesión de tribunal. La etiqueta titulada Curso académico está

asociada a los cuadros de texto CTCursoAcad1 y CTCursoAcad2.

Muestra el campo CursoAcad1 de la tabla SesionesDeTribunal de la base de datos.

Este campo tiene las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 4.

Máscara de entrada: 0000;_

La máscara de entrada sirve para que los usuarios introduzcan en el cuadro de

texto valores que se ajustan a un determinado formato, en este caso el formato

de un año, o sea, un número entero positivo con cuatro cifras. Usaremos el guión

bajo como carácter marcador.

Regla de validación: entre 1964 y 2100 (ambos inclusive).

La regla de validación sirve para que los datos introducidos en el cuadro de texto

no infrinjan dicha regla.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Permitir longitud cero: no.

Cada curso académico esta compuesto por dos años: por ejemplo, el curso

académico 2004/2005 está formado por los años 2004 y 2005. El cuadro de texto

CTCursoAcad1 contiene el primero de los años del curso académico (o sea, en el

ejemplo sería el año 2004).

5. Cuadro de texto CTCursoAcad2

Pertenece a la ficha Sesión de tribunal. La etiqueta titulada Curso académico está

asociada a los cuadros de texto CTCursoAcad1 y CTCursoAcad2.

Muestra el campo CursoAcad2 de la tabla SesionesDeTribunal de la base de datos.

Este campo tiene las siguientes propiedades:

Tipo de datos: texto (es decir, texto o combinaciones de texto y números).

Tamaño del campo: el número máximo de caracteres es de 4.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Page 69: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 120 de 197

Permitir longitud cero: no.

Cada curso académico esta compuesto por dos años: por ejemplo, el curso

académico 2004/2005 está formado por los años 2004 y 2005. El cuadro de texto

CTCursoAcad2 contiene el segundo de los años del curso académico (o sea, en el

ejemplo sería el año 2005).

Está bloqueado, es decir, no podemos modificar el contenido de este cuadro de

texto. El segundo año del curso académico se escribe automáticamente en

CTCursoAcad2 cuando introducimos el primer año de dicho curso en

CTCursoAcad1. Calcular el segundo año a partir del primero es muy sencillo, basta

con sumarle uno.

6. Cuadro combinado CCMes

Pertenece a la ficha Sesión de tribunal y tiene asociada una etiqueta titulada Mes.

Muestra el campo MesID de la tabla SesionesDeTribunal de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT Meses.MesID, Meses.Mes FROM Meses ORDER BY Meses.MesID;”

Esta consulta genera una tabla con dos columnas, que son los campos MesID y Mes

de la tabla Meses, y tantas filas como registros contiene la tabla Meses. Los valores

que aparecen en la lista desplegable del cuadro combinado son los del campo Mes

mientras que en la tabla SesionesDeTribunal se guardan los valores del campo

MesID debido a que tiene menor tamaño.

Contiene, por tanto, el mes del año en el que se celebra la sesión de tribunal.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

7. Cuadro de texto CTFechaDef

Pertenece a la ficha Sesión de tribunal y tiene asociada una etiqueta titulada Fecha

de defensa.

Page 70: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 121 de 197

Muestra el campo FechaDefensa de la tabla SesionesDeTribunal de la base de datos.

Este campo tiene las siguientes propiedades:

Tipo de datos: fecha/hora.

Formato: fecha corta (por ejemplo: 20/05/2005)

Máscara de entrada: 00/00/0000;_

La máscara de entrada sirve para que los usuarios introduzcan en el cuadro de

texto valores que se ajustan a un determinado formato, en este caso el formato de

fecha corta. Usaremos el guión bajo como carácter marcador.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Contiene, por tanto, la fecha de defensa de los proyectos fin de carrera incluidos en

la sesión de tribunal.

8. Cuadro de texto CTHoraDef

Pertenece a la ficha Sesión de tribunal y tiene asociada una etiqueta titulada Hora de

defensa.

Muestra el campo HoraDefensa de la tabla SesionesDeTribunal de la base de datos.

Este campo tiene las siguientes propiedades:

Tipo de datos: fecha/hora.

Formato: hora corta (por ejemplo: 17:34)

Máscara de entrada: 00:00;_

La máscara de entrada sirve para que los usuarios introduzcan en el cuadro de

texto valores que se ajustan a un determinado formato, en este caso el formato de

fecha corta. Usaremos el guión bajo como carácter marcador.

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Contiene, por tanto, la hora de celebración de la sesión de tribunal.

9. Cuadro combinado CCAulaDef

Pertenece a la ficha Sesión de tribunal y tiene asociada una etiqueta titulada Aula de

defensa.

Muestra el campo AulaID de la tabla SesionesDeTribunal de la base de datos. Este

campo tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero largo.

Page 71: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 122 de 197

Requerido: no (es decir, la entrada de datos no es obligatoria en este campo).

Tiene como origen la siguiente consulta:

“SELECT Aulas.AulaID, Aulas.Aula FROM Aulas ORDER BY Aulas.Aula;”

Esta consulta genera una tabla con dos columnas, que son los campos AulaID y Aula

de la tabla Aulas, y tantas filas como registros contiene la tabla Aulas. Los valores

que aparecen en la lista desplegable del cuadro combinado son los del campo Aula

mientras que en la tabla SesionesDeTribunal se guardan los valores del campo

AulaID debido a que tiene menor tamaño.

Contiene, por tanto, el aula o salón donde se celebra la sesión de tribunal.

Está limitado a la lista, es decir, no puede contener ningún valor que no se encuentre

en la lista.

10. Cuadro combinado CCNumProyectos

Pertenece a la ficha Proyectos fin de carrera y tiene asociada una etiqueta titulada

Número de proyectos fin de carrera.

Muestra el campo NumProyectos de la tabla SesionesDeTribunal de la base de

datos. Este campo tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero.

Valor predeterminado: 6.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la tabla NumeroProyectos de la base de datos. Por tanto, los

valores que aparecen en la lista desplegable del cuadro combinado son los valores

del campo NumProyectos de la tabla NumeroProyectos.

Contiene, por tanto, el número de proyectos fin de carrera que han de incluirse en la

sesión de tribunal.

11. Subformulario SFProyectos

Pertenece a la ficha Proyectos fin de carrera y no lleva asociada ninguna etiqueta.

Sabemos que un subformulario es un formulario que se inserta en otro. El

formulario primario se denomina formulario principal, y el formulario dentro del

formulario se denomina subformulario. En este caso, el formulario principal es el

Page 72: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 123 de 197

formulario SesionesDeTribunal y el subformulario recibe el nombre de

SFProyectos.

Los registros de este subformulario proceden de la tabla Proyectos de la base de

datos, mientras que los del formulario SesionesDeTribunal provienen de la tabla

SesionesDeTribunal como ya sabemos. La relación SesionesDeTribunal – Proyectos

es uno a varios, por lo que el formulario principal muestra la parte “uno” de la

relación, es decir, la sesión de tribunal en cuestión, mientras que el subformulario

muestra la parte “varios” de la relación, o sea, los proyectos fin de carrera incluidos

en dicha sesión de tribunal.

Recoge, por tanto, los proyectos fin de carrera incluidos en la sesión de tribunal.

Contiene cinco cuadros de texto que se titulan F/E Secretaría, Título, Autor: primer

apellido, Autor: segundo apellido y Autor: nombre. El primero recoge la fecha de

entrada en Secretaría, el segundo contiene el título del proyecto fin de carrera y los

tres últimos muestran el nombre y los dos apellidos del autor de dicho proyecto.

Está bloqueado, es decir, no podemos modificar el contenido de los cuadros de

texto.

12. Botón de comando BCSelProy

Pertenece a la ficha Proyectos fin de carrera y tiene asociada una etiqueta titulada

Seleccionar.

Al hacer clic sobre este botón abrimos el formulario Seleccionar proyectos fin de

carrera.

13. Botón de comando BCElimProy

Pertenece a la ficha Proyectos fin de carrera y tiene asociada una etiqueta titulada

Eliminar.

Al hacer clic sobre este botón eliminamos el proyecto fin de carrera que se

encuentra seleccionado en el subformulario SFProyectos.

14. Botón de comando BCProyectos

Pertenece a la ficha Proyectos fin de carrera y tiene asociada una etiqueta titulada Ir

a Proyectos Fin de Carrera.

Page 73: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 124 de 197

Al hacer clic sobre este botón cerramos el formulario Sesiones de tribunal y abrimos

el formulario Proyectos fin de carrera, de tal forma que el registro mostrado en el

formulario Proyectos fin de carrera corresponde al proyecto que estaba

seleccionado en el subformulario SFProyectos del formulario Sesiones de tribunal..

15. Cuadro combinado CCNumProfesores

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Número de

profesores.

Muestra el campo NumProfesores de la tabla SesionesDeTribunal de la base de

datos. Este campo tiene las siguientes propiedades:

Tipo de datos: número.

Tamaño del campo: entero.

Valor predeterminado: 3.

Requerido: sí (es decir, la entrada de datos es obligatoria en este campo).

Tiene como origen la tabla NumeroProfesores de la base de datos. Por tanto, los

valores que aparecen en la lista desplegable del cuadro combinado son los valores

del campo NumProfesores de la tabla NumeroProfesores.

Contiene, por tanto, el número de profesores que ha de tener el tribunal.

16. Subformulario SFTribunal

Pertenece a la ficha Tribunal y no lleva asociada ninguna etiqueta.

Sabemos que un subformulario es un formulario que se inserta en otro. El

formulario primario se denomina formulario principal, y el formulario dentro del

formulario se denomina subformulario. En este caso, el formulario principal es el

formulario SesionesDeTribunal y el subformulario recibe el nombre de SFTribunal.

Los registros de este subformulario proceden de la tabla Tribunales de la base de

datos, mientras que los del formulario SesionesDeTribunal provienen de la tabla

SesionesDeTribunal como ya sabemos. La relación SesionesDeTribunal –

Tribunales es uno a varios, por lo que el formulario principal muestra la parte “uno”

de la relación, es decir, la sesión de tribunal en cuestión, mientras que el

subformulario muestra la parte “varios” de la relación, o sea, los profesores del

tribunal correspondiente a dicha sesión de tribunal.

Page 74: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 125 de 197

Recoge, por tanto, los profesores del tribunal encargado de evaluar los proyectos fin

de carrera incluidos en la sesión de tribunal.

Contiene un cuadro combinado titulado Cargo y tres cuadros de texto que se titulan

Primer apellido, Segundo apellido y Nombre. Los cuadros de texto muestran el

nombre y los dos apellidos de cada profesor del tribunal mientras que el cuadro

combinado recoge el cargo que desempeña cada profesor dentro del tribunal. En la

lista desplegable del cuadro combinado aparecen tres posibles cargos, que son los de

Presidente, Vocal y Secretario. Los tres cuadros de texto se encuentran bloqueados,

por lo que resulta imposible modificar su contenido. El cuadro combinado, sin

embargo, no está bloqueado.

Está bloqueado, es decir, no podemos modificar el contenido de los cuadros de texto

ni tampoco el del cuadro combinado. Si el subformulario no estuviese bloqueado,

sólo podríamos modificar el contenido del cuadro combinado puesto que los cuadros

de texto se encuentran bloqueados ya de por sí.

17. Botón de comando BCSelTrib

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Seleccionar.

Al hacer clic sobre este botón abrimos el formulario Seleccionar tribunal.

18. Botón de comando BCElimProf

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Eliminar

profesor del tribunal.

Al hacer clic sobre este botón eliminamos el profesor que se encuentra seleccionado

en el subformulario SFTribunal.

19. Botón de comando BCElimTrib

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Eliminar tribunal

completo.

Al hacer clic sobre este botón eliminamos todos los profesores que aparecen en el

subformulario SFTribunal.

Page 75: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 126 de 197

20. Botón de comando BCProfesores

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Ir a Profesores.

Al hacer clic sobre este botón cerramos el formulario Sesiones de tribunal y abrimos

el formulario Profesores, de tal forma que el registro mostrado en el formulario

Profesores corresponde al profesor que estaba seleccionado en el subformulario

SFTribunal del formulario Sesiones de tribunal.

21. Botón de comando BCAsigAutCargos

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Asignación

automática de cargos.

Al hacer clic sobre este botón se asignan de forma automática los cargos que

desempeñan los miembros del tribunal. Para ello es necesario que el tribunal esté

formado por tres miembros. Recordemos que en función de la categoría, la

dedicación y la antigüedad (por este orden de prioridad) que posee cada uno de los

tres miembros del tribunal, ocuparán los cargos de presidente, vocal y secretario de

dicho tribunal.

22. Botón de comando BCAsigManCargos

Pertenece a la ficha Tribunal y tiene asociada una etiqueta titulada Asignación

manual de cargos.

Al hacer clic sobre este botón desbloqueamos el subformulario SFTribunal, lo cual

nos permite modificar los cargos de los profesores del tribunal.

23. Botón de comando BCEditar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Editar

registro.

Al hacer clic sobre este botón desbloqueamos la edición del registro mostrado en el

formulario, es decir, podemos modificar los datos que aparecen en el formulario.

24. Botón de comando BCGuardarReg

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Guardar

registro.

Page 76: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 127 de 197

Al hacer clic sobre este botón bloqueamos la edición del registro mostrado en el

formulario y se guardan los cambios realizados en dicho registro.

25. Botón de comando BCNuevoReg

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Nuevo

registro.

Al hacer clic sobre este botón cerramos el formulario Sesiones de tribunal y abrimos

el formulario Sesiones de tribunal – Nuevo registro.

26. Botón de comando BCEliminar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Eliminar

registro.

Al hacer clic sobre este botón eliminamos el registro mostrado en el formulario.

27. Botón de comando BCBuscar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Buscar

registros.

Al hacer clic sobre este botón abrimos el formulario BuscarSesiones (el título de

este formulario es Buscar registros).

28. Botón de comando BCOrdenar

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Ordenar

registros.

Al hacer clic sobre este botón abrimos el formulario OrdenarSesiones (el título de

este formulario es Ordenar registros).

29. Botón de comando BCQuitarFiltro

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Quitar

filtro u orden.

Al hacer clic sobre este botón quitamos los filtros y ordenaciones existentes en el

formulario. De esta forma, utilizando los botones de desplazamiento y el cuadro de

número de registro, situados en la parte inferior izquierda del formulario, podemos

Page 77: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 128 de 197

desplazarnos por todos los registros de la tabla SesionesDeTribunal, los cuales

aparecen en el orden en que han sido introducidos en dicha tabla.

30. Botón de comando BCMostrarRegistros

No pertenece a ninguna de las fichas y tiene asociada una etiqueta titulada Mostrar

todos los registros.

Se encuentra siempre desactivado y su presencia se debe a razones puramente

estéticas. Este botón de comando se utiliza en el formulario Sesiones de tribunal –

Nuevo registro para cerrar dicho formulario y abrir el formulario Sesiones de

tribunal. Esto dos formularios cuentan con el mismo aspecto para que, al pasar de

uno a otro, no se note que hemos cambiado de formulario y parezcan un mismo

formulario. Por este motivo se han incluido los mismos controles en ambos

formularios, de tal forma que en cada formulario desactivamos aquellos controles

que sólo sirven para el otro formulario.

31. Botón de comando BCAtras

No pertenece a ninguna de las fichas. Está situado en la esquina inferior izquierda

del formulario y contiene la imagen de una flecha de color verde.

Al hacer clic sobre este botón cerramos el formulario Sesiones de tribunal y

regresamos al formulario que teníamos abierto anteriormente.

32. Botón de comando BCAvisoReloj

No pertenece a ninguna de las fichas. Está situado en la parte inferior central del

formulario y contiene la imagen de un reloj.

Al hacer clic sobre este botón abrimos el formulario AvisoReloj (el título de este

formulario es Importante), en el cual se muestra simplemente un mensaje para

recordar al usuario que mantenga el reloj del sistema operativo ajustado a la fecha y

hora actuales.

33. Botón de comando BCCerrar

No pertenece a ninguna de las fichas. Está situado en la esquina inferior derecha del

formulario y contiene la imagen de una letra “X” de color gris oscuro.

Page 78: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 129 de 197

Al hacer clic sobre este botón cerramos el formulario Sesiones de tribunal y abrimos

el formulario Panel principal.

6.6.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Al activar registro del formulario SesionesDeTribunal Este evento se produce cuando el enfoque se desplaza a un registro, haciendo que sea el

registro actual, o cuando el formulario se actualiza o se somete a una nueva consulta.

El código asociado a este evento se utiliza para:

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCOrdenar y BCQuitarFiltro.

Desactivar los siguientes botones de comando: BCGuardarReg, BCSelProy,

BCElimProy, BCSelTrib, BCElimProf, BCElimTrib, BCAsigAutCargos y

BCAsigManCargos.

Mostrar un mensaje indicando que el registro anterior al actual ha sido actualizado si

es que dicho registro fue modificado y no fue guardado con anterioridad.

2. Evento Al Eliminar del formulario SesionesDeTribunal Este evento se produce cuando el usuario hace clic sobre el botón de comando

BCEliminar para eliminar un registro, pero antes de que el registro se elimine

realmente.

El código asociado a este evento se utiliza para mostrar un mensaje al usuario

preguntándole si está seguro de que desea eliminar el registro que ha seleccionado.

Page 79: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 130 de 197

3. Evento Al abrir del formulario SesionesDeTribunal Este evento se produce cuando se abre el formulario, pero antes de que se muestre el

primer registro.

El código asociado a este evento se utiliza para que el formulario Sesiones de tribunal

muestre el último registro de la tabla SesionesDeTribunal. Además, si en esta tabla no

existiera ningún registro, se muestra un mensaje explicando tal circunstancia y a

continuación se cierra el formulario Sesiones de tribunal y se abre el formulario

Sesiones de tribunal – Nuevo registro para que podamos introducir el primer registro.

4. Evento Al cerrar del formulario SesionesDeTribunal Este evento se produce cuando el formulario se cierra y desaparece de la pantalla.

El código asociado a este evento se utiliza para mostrar un mensaje indicando que el

último registro mostrado por el formulario ha sido actualizado si es que dicho registro

fue modificado y no fue guardado con anterioridad.

5. Evento Al bajar una tecla del formulario SesionesDeTribunal El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

6. Evento Al ocurrir un error del formulario SesionesDeTribunal El código asociado a este evento se utiliza para mostrar un mensaje de error cuando se

produce un error desconocido.

7. Evento Antes de actualizar del cuadro de texto CTCursoAcad1 Este evento se produce antes de que se actualicen los datos del cuadro de texto.

Page 80: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 131 de 197

El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro de texto si el subformulario SFTribunal contiene algún registro. Es decir, no

podemos modificar el curso académico a menos que el tribunal esté vacío.

8. Evento Después de actualizar del cuadro de texto CTCursoAcad1 Este evento se produce después de que se actualicen los datos modificados en el cuadro

de texto.

El código asociado a este evento se utiliza para que el segundo año del curso académico

aparezca automáticamente en CTCursoAcad2 una vez hemos introducido el primer año

de dicho curso en CTCursoAcad1. Calcular el segundo año a partir del primero es muy

sencillo, basta con sumarle uno.

9. Evento Antes de actualizar del cuadro combinado CCMes Este evento se produce antes de que se actualicen los datos del cuadro combinado.

El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si el subformulario SFTribunal contiene algún registro. Es decir, no

podemos modificar el mes en el que se celebra la sesión de tribunal a menos que el

tribunal esté vacío.

10. Evento Antes de actualizar del cuadro combinado CCNumProyectos Este evento se produce antes de que se actualicen los datos del cuadro combinado.

El código asociado a este evento se utiliza para:

Deshacer los cambios realizados en este cuadro combinado si seleccionamos un

número de proyectos menor de los que ya contiene el subformulario SFProyectos.

Deshacer los cambios realizados en este cuadro combinado si el subformulario

SFTribunal contiene algún registro. Es decir, no podemos modificar el número de

proyectos fin de carrera que deben incluirse en la sesión de tribunal a menos que el

tribunal esté vacío.

Page 81: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 132 de 197

11. Evento Al no estar en la lista del cuadro combinado CCNumProyectos Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

12. Evento Al hacer clic del botón de comando BCSelProy El código asociado a este evento se utiliza para abrir el formulario SeleccionarPfc (el

título de este formulario es Seleccionar proyectos fin de carrera).

13. Evento Al hacer clic del botón de comando BCElimProy El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

subformulario SFProyectos el proyecto fin de carrera que ha seleccionado.

En el caso de que no hayamos seleccionado ningún proyecto fin de carrera aparece

un mensaje indicando tal circunstancia.

Eliminar del subformulario SFProyectos el proyecto fin de carrera seleccionado si el

usuario así lo desea.

Impedir que se elimine del subformulario SFProyectos el proyecto fin de carrera

seleccionado si el subformulario SFTribunal contiene algún registro. Es decir, no

podemos eliminar ninguno de los proyectos fin de carrera que aparecen en el

subformulario SFProyectos a menos que el tribunal esté vacío.

14. Evento Al hacer clic del botón de comando BCProyectos El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal y abrir el formulario Proyectos fin de

carrera, de tal forma que el registro mostrado en el formulario Proyectos fin de

carrera corresponde al proyecto que estaba seleccionado en el subformulario

SFProyectos del formulario Sesiones de tribunal.

En el caso de que no hayamos seleccionado ningún proyecto fin de carrera aparece

un mensaje indicando tal circunstancia.

Page 82: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 133 de 197

15. Evento Antes de actualizar del cuadro combinado CCNumProfesores Este evento se produce antes de que se actualicen los datos del cuadro combinado.

El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si seleccionamos un número de profesores menor de los que ya

contiene el subformulario SFTribunales.

16. Evento Al no estar en la lista del cuadro combinado CCNumProfesores Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

17. Evento Al salir del subformulario STTribunal Este evento se produce inmediatamente antes de que el subformulario pierda el enfoque

en favor de otro control del mismo formulario.

El código asociado a este evento se utiliza para:

Activar el botón de comando BCAsigManCargos si se encuentran desactivados los

botones de comando BCAsigManCargos y BCEditar.

Bloquear el subformulario SFTribunal si se encuentran desactivados los botones de

comando BCAsigManCargos y BCEditar.

18. Evento Al hacer clic del botón de comando BCSelTrib El código asociado a este evento se utiliza para abrir el formulario SeleccionarTribunal

(el título de este formulario es Seleccionar tribunal), pero solamente si ya hemos

introducido todos los proyectos fin de carrera, es decir, sólo en el caso de que el número

indicado en CCNumProyectos coincida con el número de registros que contiene el

subformulario SFProyectos.

Page 83: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 134 de 197

19. Evento Al hacer clic del botón de comando BCElimProf El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

tribunal al profesor que ha seleccionado.

En el caso de que no hayamos seleccionado ningún miembro del tribunal aparece un

mensaje indicando tal circunstancia.

Mostrar un mensaje cuando el curso académico o el mes en el que se celebra la

sesión de tribunal se alejan demasiado de la fecha actual proporcionada por el

sistema operativo, pidiendo al usuario que revise las fechas antes de continuar.

Eliminar del tribunal al profesor seleccionado si el usuario así lo desea.

Mostrar un mensaje cuando el curso académico o el mes en el que se celebra la

sesión de tribunal se alejan demasiado de la fecha actual proporcionada por el

sistema operativo, preguntando al usuario si desea que los cambios realizados (es

decir, eliminar del tribunal al profesor seleccionado) afecten o no a la secuenciación

de los tribunales.

Actualizar la secuenciación de los tribunales tras quitar del tribunal al profesor

seleccionado, si el usuario así lo desea.

Si el profesor eliminado del tribunal no se encuentra entre los registros del

formulario Profesores, entonces se muestra un mensaje indicando que dicho

profesor no forma parte de la secuenciación actualmente.

Mostrar un mensaje indicando el número de miembros del tribunal que faltan por

asignar si es que falta alguno.

20. Evento Al hacer clic del botón de comando BCElimTrib Igual que el evento anterior pero en vez de quitar del tribunal únicamente al profesor

seleccionado, en este caso eliminamos del tribunal a todos los profesores que figuran en

el subformulario SFTribunal. Además, los profesores son eliminados del tribunal en

sentido contrario a como fueron asignados, es decir, el profesor que fue asignado en

primer lugar será el último en ser eliminado y viceversa. De esta forma, si los profesores

vuelven a la cola de la secuenciación, mantendrán las posiciones relativas que tenían

antes de ser asignados al tribunal.

Page 84: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 135 de 197

21. Evento Al hacer clic del botón de comando BCProfesores El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal y abrir el formulario Profesores, de tal

forma que el registro mostrado en el formulario Profesores corresponde al profesor

que estaba seleccionado en el subformulario SFTribunal del formulario Sesiones de

tribunal.

En el caso de que no hayamos seleccionado ningún profesor aparece un mensaje

indicando tal circunstancia.

Si el profesor seleccionado en el subformulario SFTribunal no se encuentra entre los

registros del formulario Profesores, entonces se muestra un mensaje indicando que

dicho profesor fue eliminado desde el formulario Profesores con anterioridad.

22. Evento Al hacer clic del botón de comando BCAsigAutCargos El código asociado a este evento se utiliza para:

Asignar de forma automática los cargos que desempeñan los miembros del tribunal.

Para ello es necesario que el tribunal esté formado por tres miembros. Recordemos

que en función de la categoría, la dedicación y la antigüedad (por este orden de

prioridad) que posee cada uno de los tres miembros del tribunal, ocuparán los cargos

de presidente, vocal y secretario de dicho tribunal.

Si el número de miembros del tribunal no es igual a tres, entonces aparece un

mensaje indicando que no es posible la asignación automática de cargos.

Si alguno de los profesores del tribunal no se encuentra entre los registros del

formulario Profesores, entonces se muestra un mensaje indicando que no es posible

asignar automáticamente los cargos debido a que alguno de los profesores del

tribunal fue eliminado con anterioridad desde el formulario Profesores.

23. Evento Al hacer clic del botón de comando BCAsigManCargos El código asociado a este evento se utiliza para:

Desactivar el botón de comando BCAsigManCargos.

Desbloquear el subformulario SFTribunal, lo cual nos permite modificar los cargos

de los profesores del tribunal.

Page 85: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 136 de 197

En el caso de que el tribunal no tenga ningún componente aparece un mensaje

indicando tal circunstancia.

24. Evento Al hacer clic del botón de comando BCEditar El código asociado a este evento se utiliza para:

Desbloquear la edición del registro mostrado en el formulario, es decir, podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCGuardarReg, BCSelProy,

BCElimProy, BCSelTrib, BCElimProf, BCElimTrib, BCAsigAutCargos y

BCAsigManCargos.

Desactivar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCOrdenar y BCQuitarFiltro.

25. Evento Al hacer clic del botón de comando BCGuardarReg El código asociado a este evento se utiliza para:

Guardar los cambios realizados en el registro que muestra el formulario.

Mostrar un mensaje indicando que el registro ha sido actualizado.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCEditar, BCEliminar, BCBuscar,

BCOrdenar y BCQuitarFiltro.

Desactivar los siguientes botones de comando: BCGuardarReg, BCSelProy,

BCElimProy, BCSelTrib, BCElimProf, BCElimTrib, BCAsigAutCargos y

BCAsigManCargos.

26. Evento Al hacer clic del botón de comando BCNuevoReg El código asociado a este evento se utiliza para cerrar el formulario Sesiones de tribunal

y abrir el formulario Sesiones de tribunal – Nuevo registro.

Page 86: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 137 de 197

27. Evento Al hacer clic del botón de comando BCEliminar El código asociado a este evento se utiliza para:

Eliminar la sesión de tribunal mostrada en el formulario.

Mostrar un mensaje confirmando que dicho sesión de tribunal ha sido eliminada.

Si queremos eliminar una sesión de tribunal cuyo tribunal no está vacío, entonces

aparece un mensaje indicando que no es posible la eliminación de dicha sesión de

tribunal. Es decir, no podemos eliminar una sesión de tribunal a menos que el

tribunal correspondiente a dicha sesión se encuentre vacío.

28. Evento Al hacer clic del botón de comando BCBuscar El código asociado a este evento se utiliza para abrir el formulario BuscarSesiones (el

título de este formulario es Buscar registros).

29. Evento Al hacer clic del botón de comando BCOrdenar El código asociado a este evento se utiliza para abrir el formulario OrdenarSesiones (el

título de este formulario es Ordenar registros).

30. Evento Al hacer clic del botón de comando BCQuitarFiltro El código asociado a este evento se utiliza para quitar los filtros y ordenaciones

existentes en el formulario, sin que cambie el registro mostrado por el formulario.

31. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para cerrar el formulario Sesiones de tribunal

y regresar al formulario que teníamos abierto anteriormente.

32. Evento Al hacer clic del formulario BCAvisoReloj El código asociado a este evento se utiliza para abrir el formulario AvisoReloj (el título

de este formulario es Importante).

Page 87: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 138 de 197

33. Evento Al hacer clic del formulario BCCerrar El código asociado a este evento se utiliza para cerrar el formulario Sesiones de tribunal

y abrir el formulario Panel principal.

Page 88: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 139 de 197

6.7.- Formulario SesionesDeTribunalAgregar El aspecto que presenta el formulario SesionesDeTribunalAgregar es el siguiente:

Figura 6.7.a

En la figura 6.7.a podemos ver que en la barra de título aparece el título del formulario:

Sesiones de tribunal – Nuevo registro. Para referirnos a este formulario, podemos

hacerlo por su nombre (SesionesDeTribunalAgregar) o bien por su título (Sesiones de

tribunal – Nuevo registro).

Si comparamos las figuras 6.6.a y 6.7.a podemos apreciar que el formulario Sesiones de

tribunal y el formulario Sesiones de tribunal – Nuevo registro cuentan con el mismo

aspecto. Con esto se pretende que, al pasar de uno a otro, no se note que hemos

cambiado de formulario y parezcan un mismo formulario. Así, se han incluido los

mismos controles en ambos formularios, de tal forma que en cada formulario

desactivamos aquellos controles que sólo sirven para el otro formulario.

El formulario Sesiones de tribunal – Nuevo registro sirve, como su propio nombre

indica, para crear nueva sesiones de tribunal, es decir, a través de este formulario

podemos agregar nuevos registros a la tabla SesionesDeTribunal de la base de datos.

Page 89: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 140 de 197

Además, cada vez que incluimos un proyecto fin de carrera en el subformulario

SFProyectos o un miembro del tribunal en el subformulario SFTribunales, se agrega un

nuevo registro a la tabla Proyectos o a la tabla Tribunales respectivamente.

6.7.1.- Controles Son los mismos que los del formulario Sesiones de tribunal como ya hemos comentado.

Se encuentran desactivados los siguientes controles: BCBuscar, BCOrdenar y

BCQuitarFiltro.

6.7.2.- Código VBA En este apartado citaremos todos los eventos a los cuales hemos asignado código VBA

y explicaremos para qué sirve dicho código.

1. Evento Antes de insertar del formulario SesionesDeTribunalAgregar Este evento se produce cuando el usuario escribe el primer carácter de un nuevo

registro, pero antes de que el registro se cree realmente.

El código asociado a este evento se utiliza para activar el botón de comando

BCGuardarReg.

2. Evento Al eliminar del formulario SesionesDeTribunalAgregar El código asociado a este evento se utiliza para mostrar un mensaje al usuario

preguntándole si está seguro de que desea eliminar el registro que ha seleccionado.

3. Evento Al cargar del formulario SesionesDeTribunalAgregar Este evento se produce cuando se abre el formulario y se muestran sus registros.

El código asociado a este evento se utiliza para introducir el primer año del curso

académico en el cuadro de texto CTCursoAcad1 y el segundo año del curso académico

en el cuadro de texto CTCursoAcad2, de acuerdo con la fecha actual.

Page 90: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 141 de 197

4. Evento Al cerrar del formulario SesionesDeTribunalAgregar El código asociado a este evento se utiliza para mostrar un mensaje indicando que el

nuevo registro ha sido guardado si no hemos utilizado anteriormente el botón de

comando BCGuardarReg para guardarlo.

5. Evento Al bajar una tecla del formulario SesionesDeTribunalAgregar El código asociado a este evento se utiliza para desactivar los métodos abreviados de

teclado de Access. Con esto queremos evitar que al pulsar ciertas teclas se tenga acceso

a comandos u operaciones frecuentes en Access (por ejemplo: si pulsamos ALT+F4

salimos de Access, si pulsamos F12 se abre el cuadro de diálogo Guardar como, etc.).

Pretendemos que el usuario maneje la aplicación utilizando únicamente los controles de

la aplicación y de esta manera poder garantizar su correcto funcionamiento.

6. Evento Al ocurrir un error del formulario SesionesDeTribunalAgregar El código asociado a este evento se utiliza para mostrar un mensaje de error cuando se

produce un error desconocido.

7. Evento Antes de actualizar del cuadro de texto CTCursoAcad1 El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro de texto si el subformulario SFTribunal contiene algún registro. Es decir, no

podemos modificar el curso académico a menos que el tribunal esté vacío.

8. Evento Después de actualizar del cuadro de texto CTCursoAcad1 El código asociado a este evento se utiliza para que el segundo año del curso académico

aparezca automáticamente en CTCursoAcad2 una vez hemos introducido el primer año

de dicho curso en CTCursoAcad1. Calcular el segundo año a partir del primero es muy

sencillo, basta con sumarle uno.

9. Evento Antes de actualizar del cuadro combinado CCMes El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si el subformulario SFTribunal contiene algún registro. Es decir, no

Page 91: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 142 de 197

podemos modificar el mes en el que se celebra la sesión de tribunal a menos que el

tribunal esté vacío.

10. Evento Antes de actualizar del cuadro combinado CCNumProyectos El código asociado a este evento se utiliza para:

Deshacer los cambios realizados en este cuadro combinado si seleccionamos un

número de proyectos menor de los que ya contiene el subformulario SFProyectos.

Deshacer los cambios realizados en este cuadro combinado si el subformulario

SFTribunal contiene algún registro. Es decir, no podemos modificar el número de

proyectos fin de carrera que deben incluirse en la sesión de tribunal a menos que el

tribunal esté vacío.

11. Evento Al no estar en la lista del cuadro combinado CCNumProyectos Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

12. Evento Al hacer clic del botón de comando BCSelProy El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando si falta por rellenar algún campo requerido.

Abrir el formulario SeleccionarPfcAgregar (el título de este formulario es

Seleccionar proyectos fin de carrera).

13. Evento Al hacer clic del botón de comando BCElimProy El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

subformulario SFProyectos el proyecto fin de carrera que ha seleccionado.

En el caso de que no hayamos seleccionado ningún proyecto fin de carrera aparece

un mensaje indicando tal circunstancia.

Page 92: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 143 de 197

Eliminar del subformulario SFProyectos el proyecto fin de carrera seleccionado si el

usuario así lo desea.

Impedir que se elimine del subformulario SFProyectos el proyecto fin de carrera

seleccionado si el subformulario SFTribunal contiene algún registro. Es decir, no

podemos eliminar ninguno de los proyectos fin de carrera que aparecen en el

subformulario SFProyectos a menos que el tribunal esté vacío.

14. Evento Al hacer clic del botón de comando BCProyectos El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal – Nuevo registro y abrir el formulario

Proyectos fin de carrera, de tal forma que el registro mostrado en el formulario

Proyectos fin de carrera corresponde al proyecto que estaba seleccionado en el

subformulario SFProyectos del formulario Sesiones de tribunal – Nuevo registro.

En el caso de que no hayamos seleccionado ningún proyecto fin de carrera aparece

un mensaje indicando tal circunstancia.

15. Evento Antes de actualizar del cuadro combinado CCNumProfesores El código asociado a este evento se utiliza para deshacer los cambios realizados en este

cuadro combinado si seleccionamos un número de profesores menor de los que ya

contiene el subformulario SFTribunales.

16. Evento Al no estar en la lista del cuadro combinado CCNumProfesores Este evento se produce cuando el usuario introduce en el componente cuadro de texto

del cuadro combinado un valor que no se encuentra en la lista del cuadro combinado.

El código asociado a este evento se utiliza para añadir dicho valor a la lista del cuadro

combinado si el usuario lo desea.

17. Evento Al salir del subformulario SFTribunales El código asociado a este evento se utiliza para:

Activar el botón de comando BCAsigManCargos si se encuentran desactivados los

botones de comando BCAsigManCargos y BCEditar.

Page 93: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 144 de 197

Bloquear el subformulario SFTribunal si se encuentran desactivados los botones de

comando BCAsigManCargos y BCEditar.

18. Evento Al hacer clic del botón de comando BCSelTrib El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando si falta por rellenar algún campo requerido.

Abrir el formulario SeleccionarTribunalAgregar (el título de este formulario es

Seleccionar tribunal), pero solamente si ya hemos introducido todos los proyectos

fin de carrera, es decir, sólo en el caso de que el número indicado en

CCNumProyectos coincida con el número de registros que contiene el

subformulario SFProyectos.

19. Evento Al hacer clic del botón de comando BCElimProf El código asociado a este evento se utiliza para:

Mostrar un mensaje preguntando al usuario si está seguro de que desea eliminar del

tribunal al profesor que ha seleccionado.

En el caso de que no hayamos seleccionado ningún miembro del tribunal aparece un

mensaje indicando tal circunstancia.

Mostrar un mensaje cuando el curso académico o el mes en el que se celebra la

sesión de tribunal se alejan demasiado de la fecha actual proporcionada por el

sistema operativo, pidiendo al usuario que revise las fechas antes de continuar.

Eliminar del tribunal al profesor seleccionado si el usuario así lo desea.

Mostrar un mensaje cuando el curso académico o el mes en el que se celebra la

sesión de tribunal se alejan demasiado de la fecha actual proporcionada por el

sistema operativo, preguntando al usuario si desea que los cambios realizados (es

decir, eliminar del tribunal al profesor seleccionado) afecten o no a la secuenciación

de los tribunales.

Actualizar la secuenciación de los tribunales tras quitar del tribunal al profesor

seleccionado, si el usuario así lo desea.

Si el profesor eliminado del tribunal no se encuentra entre los registros del

formulario Profesores, entonces se muestra un mensaje indicando que dicho

profesor no forma parte de la secuenciación actualmente.

Page 94: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 145 de 197

Mostrar un mensaje indicando el número de miembros del tribunal que faltan por

asignar si es que falta alguno.

20. Evento Al hacer clic del botón de comando BCElimTrib Igual que el evento anterior pero en vez de quitar del tribunal únicamente al profesor

seleccionado, en este caso eliminamos del tribunal a todos los profesores que figuran en

el subformulario SFTribunal. Además, los profesores son eliminados del tribunal en

sentido contrario a como fueron asignados, es decir, el profesor que fue asignado en

primer lugar será el último en ser eliminado y viceversa. De esta forma, si los profesores

vuelven a la cola de la secuenciación, mantendrán las posiciones relativas que tenían

antes de ser asignados al tribunal.

21. Evento Al hacer clic del botón de comando BCProfesores El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal – Nuevo registro y abrir el formulario

Profesores, de tal forma que el registro mostrado en el formulario Profesores

corresponde al profesor que estaba seleccionado en el subformulario SFTribunal del

formulario Sesiones de tribunal – Nuevo registro.

En el caso de que no hayamos seleccionado ningún profesor aparece un mensaje

indicando tal circunstancia.

Si el profesor seleccionado en el subformulario SFTribunal no se encuentra entre los

registros del formulario Profesores, entonces se muestra un mensaje indicando que

dicho profesor fue eliminado desde el formulario Profesores con anterioridad.

22. Evento Al hacer clic del botón de comando BCAsigAutCargos El código asociado a este evento se utiliza para:

Asignar de forma automática los cargos que desempeñan los miembros del tribunal.

Para ello es necesario que el tribunal esté formado por tres miembros. Recordemos

que en función de la categoría, la dedicación y la antigüedad (por este orden de

prioridad) que posee cada uno de los tres miembros del tribunal, ocuparán los cargos

de presidente, vocal y secretario de dicho tribunal.

Page 95: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 146 de 197

Si el número de miembros del tribunal no es igual a tres, entonces aparece un

mensaje indicando que no es posible la asignación automática de cargos.

Si alguno de los profesores del tribunal no se encuentra entre los registros del

formulario Profesores, entonces se muestra un mensaje indicando que no es posible

asignar automáticamente los cargos debido a que alguno de los profesores del

tribunal fue eliminado con anterioridad desde el formulario Profesores.

23. Evento Al hacer clic del botón de comando BCAsigManCargos El código asociado a este evento se utiliza para:

Desactivar el botón de comando BCAsigManCargos.

Desbloquear el subformulario SFTribunal, lo cual nos permite modificar los cargos

de los profesores del tribunal.

En el caso de que el tribunal no tenga ningún componente aparece un mensaje

indicando tal circunstancia.

24. Evento Al hacer clic del botón de comando BCEditar El código asociado a este evento se utiliza para:

Desbloquear la edición del registro mostrado en el formulario, es decir, podemos

modificar los datos que aparecen en el formulario.

Activar los siguientes botones de comando: BCGuardarReg, BCSelProy,

BCElimProy, BCSelTrib, BCElimProf, BCElimTrib, BCAsigAutCargos y

BCAsigManCargos.

Desactivar los siguientes botones de comando: BCEditar y BCEliminar.

25. Evento Al hacer clic del botón de comando BCGuardarReg El código asociado a este evento se utiliza para:

Mostrar un mensaje indicando si falta por rellenar algún campo requerido.

Guardar el nuevo registro, o los cambios realizados en él si ya había sido guardado

previamente.

Mostrar un mensaje indicando que el nuevo registro ha sido guardado.

Bloquear la edición del registro mostrado en el formulario, es decir, no podemos

modificar los datos que aparecen en el formulario.

Page 96: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 147 de 197

Activar los siguientes botones de comando: BCEditar, BCNuevoReg y BCEliminar.

Desactivar los siguientes botones de comando: BCGuardarReg, BCSelProy y

BCElimProy, BCSelTrib, BCElimProf, BCElimTrib, BCAsigAutCargos y

BCAsigManCargos.

26. Evento Al hacer clic del botón de comando BCNuevoReg El código asociado a este evento se utiliza para cerrar el formulario Sesiones de tribunal

– Nuevo registro y abrirlo de nuevo.

27. Evento Al hacer clic del botón de comando BCEliminar

Eliminar la sesión de tribunal mostrada en el formulario.

Mostrar un mensaje confirmando que dicha sesión de tribunal ha sido eliminada.

Si queremos eliminar una sesión de tribunal cuyo tribunal no está vacío, entonces

aparece un mensaje indicando que no es posible la eliminación de dicha sesión de

tribunal. Es decir, no podemos eliminar una sesión de tribunal a menos que el

tribunal correspondiente a dicha sesión se encuentre vacío.

Desbloquear la edición del formulario, es decir, podemos introducir datos en los

cuadros de texto y cuadros combinados del formulario.

Activar los siguientes botones de comando: BCSelProy, BCElimProy, BCSelTrib,

BCElimProf, BCElimTrib, BCAsigAutCargos y BCAsigManCargos.

Desactivar los siguientes botones de comando: BCEditar, BCGuardarReg,

BCNuevoReg y BCEliminar.

Introducir el primer año del curso académico en el cuadro de texto CTCursoAcad1 y

el segundo año del curso académico en el cuadro de texto CTCursoAcad2, de

acuerdo con la fecha actual.

28. Evento Al hacer clic del botón de comando BCMostrarRegistros El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal – Nuevo registro y abrir el formulario

Sesiones de tribunal.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Sesiones de tribunal – Nuevo registro, debido a que falta por rellenar

Page 97: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 148 de 197

algún campo requerido. Este mensaje pregunta al usuario si desea salir del

formulario Sesiones de tribunal – Nuevo registro sin guardar el nuevo registro o, por

el contrario, prefiere permanecer en dicho formulario para poder introducir las

modificaciones oportunas y guardar dicho registro.

29. Evento Al hacer clic del botón de comando BCAtras El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal – Nuevo registro y regresar al formulario

que teníamos abierto anteriormente.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Sesiones de tribunal – Nuevo registro, debido a que falta por rellenar

algún campo requerido. Este mensaje pregunta al usuario si desea salir del

formulario Sesiones de tribunal – Nuevo registro sin guardar el nuevo registro o, por

el contrario, prefiere permanecer en dicho formulario para poder introducir las

modificaciones oportunas y guardar dicho registro.

30. Evento Al hacer clic del botón de comando BCAvisoReloj El código asociado a este evento se utiliza para abrir el formulario AvisoReloj (el título

de este formulario es Importante).

31. Evento Al hacer clic del botón de comando BCCerrar El código asociado a este evento se utiliza para:

Cerrar el formulario Sesiones de tribunal – Nuevo registro y abrir el formulario

Panel principal.

Mostrar un mensaje cuando no sea posible guardar el nuevo registro antes de cerrar

el formulario Sesiones de tribunal – Nuevo registro, debido a que falta por rellenar

algún campo requerido. Este mensaje pregunta al usuario si desea salir del

formulario Sesiones de tribunal – Nuevo registro sin guardar el nuevo registro o, por

el contrario, prefiere permanecer en dicho formulario para poder introducir las

modificaciones oportunas y guardar dicho registro.

Page 98: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 149 de 197

6.8.- Formulario SeleccionarTribunal El aspecto que presenta el formulario SeleccionarTribunal es el siguiente:

Figura 6.8.a – Ficha Profesores que pueden ser presidentes de un tribunal

Figura 6.8.b – Ficha Profesores que pueden ser miembros de un tribunal

Tanto en la figura 6.8.a como en la 6.8.b podemos ver que en la barra de título aparece

el título del formulario: Seleccionar tribunal. Para referirnos a este formulario

utilizaremos siempre su nombre (SeleccionarTribunal).

Page 99: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 150 de 197

El formulario SeleccionarTribunal se abre al hacer clic sobre el botón Seleccionar (es

decir, el botón de comando BCSelTrib) que se encuentra situado en la ficha Tribunal del

formulario Sesiones de tribunal (ver figura 6.6.c).

A través de este formulario seleccionaremos a los profesores que figuran en el tribunal

de cada sesión. Normalmente son tres los profesores que hay en cada tribunal. Para

seleccionar estos tres profesores tenemos que hacer lo siguiente:

1) En la lista de profesores de la ficha Profesores que pueden ser presidentes de un

tribunal tenemos que seleccionar un profesor. En esta lista, el orden de aparición

de los profesores coincide con el orden de preferencia en que debe ser asignados.

Por tanto, elegiremos al primer profesor que aparece en la lista.

2) En la lista de profesores de la ficha Profesores que puede ser miembros de un

tribunal tenemos que seleccionar los dos profesores que quedan. En esta lista, el

orden de aparición de los profesores coincide también con el orden de

preferencia en que deben ser asignados. Por tanto, elegiremos el primero y el

segundo de la lista.

El código VBA que carga las dos listas de profesores se encarga de que la selección de

los profesores sea tan fácil como seguir siempre estos dos pasos sin tener que

preocuparnos de nada más. Veamos a continuación este código, el cual se encuentra

asociado al evento Al cargar del formulario SeleccionarTribunal:

Page 100: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 151 de 197

Private Sub Form_Load() On Error GoTo Err_Form_Load DoCmd.Hourglass True Dim lngSesionID As Long Dim intCursoAcad1 As Integer Dim lngMes As Long Dim strConsMesCA As String Dim strConsCLFuncionarios As String Dim strConsCLProfesores Dim dbs As Database Dim qdfConsMesCA As QueryDef lngSesionID = Forms!SesionesDeTribunal!SesionID intCursoAcad1 = Forms!SesionesDeTribunal!CursoAcad1 lngMes = Forms!SesionesDeTribunal!Mes Set dbs = CurrentDb strConsMesCA = "SELECT Tribunales.ProfesorID FROM SesionesDeTribunal INNER JOIN Tribunales " _ & "ON SesionesDeTribunal.SesionID = Tribunales.SesionID " _ & "WHERE SesionesDeTribunal.CursoAcad1 LIKE '" & intCursoAcad1 & "' " _ & "AND SesionesDeTribunal.Mes LIKE '" & lngMes & "';" Set qdfConsMesCA = dbs.CreateQueryDef("ConsMesCA", strConsMesCA) strConsCLFuncionarios = "SELECT ConsPosPres.ProfesorID, ConsPosPres.ContadosAsistencias, ConsPosPres.Ap1Profesor, " _ & "ConsPosPres.Ap2Profesor, ConsPosPres.NombProfesor, ConsPosPres.PosicionCola " _ & "FROM ConsPosPres LEFT JOIN ConsMesCA ON ConsPosPres.ProfesorID = ConsMesCA.ProfesorID " _ & "WHERE ConsMesCA.ProfesorID Is Null " _ & "ORDER BY ConsPosPres.ContadorAsistencias DESC, ConsPosPres.PosicionCola, ConsPosPres.FechaSalidaCola;" strConsCLProfesores = "SELECT ConsPosTrib.ProfesorID, ConsPosTrib.ContadosAsistencias, ConsPosTrib.Ap1Profesor, " _ & "ConsPosTrib.Ap2Profesor, ConsPosTrib.NombProfesor, ConsPosTrib.PosicionCola " _ & "FROM ConsPosTrib LEFT JOIN ConsMesCA ON ConsPosTrib.ProfesorID = ConsMesCA.ProfesorID " _ & "WHERE ConsMesCA.ProfesorID Is Null " _ & "ORDER BY ConsPosTrib.ContadosAsistencias DESC, ConsPosTrib.PosicionCola, ConsPosTrib.FechaSalidaCola;" Me.CLFuncionarios.RowSource = strConsCLFuncionarios Me.CLProfesores.RowSource = strConsCLProfesores

Page 101: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 152 de 197

dbs.QueryDefs.Delete "ConsMesCA" Set qdfConsMesCA = Nothing Set dbs = Nothing DoCmd.Hourglass False Exit_Form_Load: Exit Sub Err_Form_Load: DoCmd.Hourglass False DisplayMessage "Error desconocido (Identificador: SLTR-14)." Resume Exit_Form_Load End Sub

Page 102: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 153 de 197

Analizando el código observamos que éste genera tres consultas importantes, que son

las siguientes:

1. Consulta ConsMesCa Es la consulta que queda guardada en la variable strConsMesCA. La consulta

ConsMesCA sirve para seleccionar todos aquellos profesores que han sido miembros del

tribunal en el curso académico y en el mes de la sesión de tribunal mostrada en el

formulario Sesiones de tribunal.

2. Consulta ConsCLFuncionarios Es la consulta que queda guardada en la variable strConsCLFuncionarios. La consulta

ConsCLFuncionarios sirve para seleccionar todos los profesores que pueden ser

presidentes de un tribunal excepto aquéllos que han sido miembros del tribunal en el

curso académico y en el mes de la sesión de tribunal mostrada en el formulario Sesiones

de tribunal.

La lista de profesores de la ficha Profesores que pueden ser presidentes de un tribunal

(cuadro de lista CLFuncionarios) tiene como origen la consulta ConsCLFuncionarios.

Por ello, el orden de aparición de los profesores en esta consulta coincide con el orden

de preferencia en que deben ser asignados al tribunal de la sesión en cuestión. Así, el

primer profesor de la lista será el de mayor ContadorAsistencias, menor PosicionCola y

menor FechaSalidaCola (por este orden de prioridad), considerando que una fecha es

menor que otra cuando es más antigua. El resto de la lista se genera siguiendo este

mismo criterio.

La consulta ConsCLFuncionarios se genera a partir de otras dos consultas:

ConsPosPres y ConsMesCA. La consulta ConsMesCA acabamos de describirla en el

punto anterior, pero aún no sabemos en qué consiste la consulta ConsPosPres.

La consulta ConsPosPres ha sido creada con Access y podemos hacer referencia a ella

en el código VBA como si fuera una tabla más de la base de datos. Esta consulta recoge

a todos los profesores que puede ser presidentes de un tribunal. Si la expresamos en

lenguaje SQL queda de la siguiente manera:

Page 103: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 154 de 197

“SELECT Profesores.ProfesorID, Profesores.Ap1Profesor, Profesores.Ap2Profesor,

Profesores.NombProfesor, Profesores.ContadorAsistencias, Profesores.PosicionCola,

Profesores.FechaSalidaCola, Categorias.PosPres

FROM Categorias INNER JOIN Profesores

ON Categorias.CategoriaID = Profesores.CategoriaID

WHERE Categorias.PosPres = Yes;”

3. Consulta ConsCLProfesores Es la consulta que queda guardada en la variable strConsCLProfesores. La consulta

ConsCLProfesores sirve para seleccionar todos los profesores que pueden ser miembros

de un tribunal excepto aquéllos que han sido miembros del tribunal en el curso

académico y en el mes de la sesión de tribunal mostrada en el formulario Sesiones de

tribunal.

La lista de profesores de la ficha Profesores que pueden ser miembros de un tribunal

(cuadro de lista CLProfesores) tiene como origen la consulta ConsCLProfesores. Por

ello, el orden de aparición de los profesores en esta consulta coincide con el orden de

preferencia en que deben ser asignados al tribunal de la sesión en cuestión. Así, el

primer profesor de la lista será el de mayor ContadorAsistencias, menor PosicionCola y

menor FechaSalidaCola (por este orden de prioridad), considerando que una fecha es

menor que otra cuando es más antigua. El resto de la lista se genera siguiendo este

mismo criterio.

La consulta ConsCLProfesores se genera a partir de otras dos consultas: ConsPosTrib y

ConsMesCA. La consulta ConsMesCA ha sido descrita anteriormente, pero aún no

sabemos en qué consiste la consulta ConsPosTrib.

La consulta ConsPosTrib ha sido creada con Access y podemos hacer referencia a ella

en el código VBA como si fuera una tabla más de la base de datos. Esta consulta recoge

a todos los profesores que pueden ser miembros de un tribunal. Si la expresamos en

lenguaje SQL queda de la siguiente manera:

Page 104: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 155 de 197

“SELECT Profesores.ProfesorID, Profesores.Ap1Profesor, Profesores.Ap2Profesor,

Profesores.NombProfesor, Profesores.ContadorAsistencias, Profesores.PosicionCola,

Profesores.FechaSalidaCola, Categorias.PosTrib

FROM Categorias INNER JOIN Profesores

ON Categorias.CategoriaID = Profesores.Categoria

WHERE Categorias.PosTrib = Yes;”

Una vez hemos comprendido cómo se generan las dos listas de profesores que aparecen

en el formulario SeleccionarTribunal, vamos a ocuparnos a continuación de analizar

qué sucede cuando seleccionamos un profesor en el cuadro de lista CLFuncionarios y lo

asignamos al tribunal de la sesión mostrada en el formulario Sesiones de tribunal.

El código VBA asociado al evento Al hacer clic del botón Asignar (botón de comando

BCAsigFunc) de la ficha Profesores que pueden ser presidentes de un tribunal es el

siguiente:

Page 105: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 156 de 197

Private Sub BCAsigFunc_Click() On Error GoTo Err_BCAsigFunc_Click DoCmd.Hourglass True Dim cnn As Connection Dim rstTribunales As New ADODB.Recordset Dim rstConsProfesores As New ADODB.Recordset Dim varPosicion1 As Variant Dim varPosicion2 As Variant Dim strCriterio As String Dim strMensaje1 As String Dim strMensaje2 As String Dim lngSesionID As Long Dim intNumMiembros As Integer Dim intNumMiembSubf As Integer Dim intNumMiembSel As Integer Dim intNumMiembSuma As Integer Dim intNumMiembResta As Integer Dim intNumTribunales As Integer Dim intContadorAsistencias As Integer Dim intPosicionCola As Integer Dim intPosColaAlAsignar As Integer Dim intPosColaAlEliminar As Integer Dim intPosColaAlAsigUno As Integer Dim intPosColaAlElimUno As Integer Dim intNumEnCola As Integer Dim intNumEnColaCorreg As Integer Dim intCursoActual1 As Integer Dim intCursoActual2 As Integer Dim intNumProf As Integer Dim intNumProfSel As Integer Dim intNumProfDif As Integer lngSesionID = Forms!SesionesDeProyectos!SesionID intNumMiembros = Forms!SesionesDeProyectos!NumProfesores intNumMiembSubf = DCount("[MiembroID]", "Tribunales", "SesionID = " & lngSesionID) intNumMiembSel = CLFuncionarios.ItemsSelected.Count intNumMiembSuma = intNumMiembSubf + intNumMiembSel

Page 106: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 157 de 197

intNumMiembResta = intNumMiembros - intNumMiembSubf If intNumMiembSel = 0 Then DoCmd.Hourglass False DisplayMessage "No ha seleccionado ningún elemento de la lista." Exit Sub End If If intNumMiembSuma > intNumMiembros Then DoCmd.Hourglass False DisplayMessage "El número máximo de profesores que puede seleccionar es de: " & intNumMiembResta & " " _ & "(teniendo en cuenta el número de profesores que ha elegido)." Exit Sub End If If Month(Date) >= 10 Then intCursoActual1 = Year(Date) Else intCursoActual1 = Year(Date) - 1 End If intCursoActual2 = intCursoActual1 + 1 If (Forms!SesionesDeProyectos!CTCursoAcad1 <> intCursoActual1) Or _ (Forms!SesionesDeProyectos!CTCursoAcad1 = intCursoActual1 And Forms!SesionesDeProyectos!CCMes < Month(Date)) Or _ (Forms!SesionesDeProyectos!CTCursoAcad1 = intCursoActual1 And Forms!SesionesDeProyectos!CCMes > Month(Date) + 1) Then strMensaje1 = "El curso académico o el mes que ha seleccionado parecen alejarse de la fecha actual " _ & "proporcionada el sistema operativo. Es recomendable que revise las fechas antes de continuar. " _ & "¿Desea continuar?" If Not Confirm(strMensaje1) Then DoCmd.Close acForm, "SeleccionarTribunal" DoCmd.Hourglass False Exit Sub End If End If Set cnn = CurrentProject.Connection rstConsProfesores.Open "ConsProfesores", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect rstTribunales.Open "Tribunales", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect For Each varPosicion1 In CLFuncionarios.ItemsSelected

Page 107: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 158 de 197

strCriterio = "ProfesorID = " & CLFuncionarios.ItemData(varPosicion1) rstConsProfesores.MoveFirst rstConsProfesores.Find (strCriterio) rstTribunales.AddNew cnn.BeginTrans rstTribunales!SesionID = lngSesionID rstTribunales!ProfesorID = rstConsProfesores!ProfesorID rstTribunales!Ap1Miembro = rstConsProfesores!Ap1Profesor rstTribunales!Ap2Miembro = rstConsProfesores!Ap2Profesor rstTribunales!NombMiembro = rstConsProfesores!NombProfesor rstTribunales.Update If rstConsProfesores!ContadorAsistencias = 0 And rstConsProfesores!NumTribunales > 1 Then rstConsProfesores!FechaSalidaCola = Now 'Generamos FHSC. rstConsProfesores.Update End If cnn.CommitTrans Next varPosicion1 Forms!SesionesDeProyectos.Refresh Forms!SesionesDeProyectos.PRAsigTrib blnAUSubf = True If (Forms!SesionesDeProyectos!CTCursoAcad1 <> intCursoActual1) Or _ (Forms!SesionesDeProyectos!CTCursoAcad1 = intCursoActual1 And Forms!SesionesDeProyectos!CCMes < Month(Date)) Or _ (Forms!SesionesDeProyectos!CTCursoAcad1 = intCursoActual1 And Forms!SesionesDeProyectos!CCMes > Month(Date) + 1) Then strMensaje2 = "¿Desea que los cambios realizados afecten a la secuenciación de los profesores?" If Not Confirm(strMensaje2) Then rstConsProfesores.Close rstTribunales.Close Set cnn = Nothing DoCmd.Close acForm, "SeleccionarTribunal" DoCmd.Hourglass False Exit Sub End If End If For Each varPosicion2 In CLFuncionarios.ItemsSelected strCriterio = "ProfesorID = " & CLFuncionarios.ItemData(varPosicion2)

Page 108: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 159 de 197

rstConsProfesores.MoveFirst rstConsProfesores.Find (strCriterio) intNumTribunales = rstConsProfesores!NumTribunales intContadorAsistencias = rstConsProfesores!ContadorAsistencias intPosicionCola = rstConsProfesores!PosicionCola intPosColaAlAsignar = rstConsProfesores!PosColaAlAsignar intPosColaAlEliminar = rstConsProfesores!PosColaAlEliminar intPosColaAlAsigUno = rstConsProfesores!PosColaAlAsigUno intPosColaAlElimUno = rstConsProfesores!PosColaAlElimUno If intContadorAsistencias = 0 And intPosicionCola > 0 Then 'Caso NSC = 0 y PC > 0 -> profesor en cola. If intNumTribunales = 1 Then 'Caso NS = 1 -> caso particular. intNumEnCola = DCount("[ProfesorID]", "Profesores", "[ContadorAsistencias] = 0") If intPosColaAlElimUno = 0 Then 'Caso PCEU = 0 -> caso general: profesor no eliminado previamente; Nota: PCAU puede ser mayor o igual que cero. rstConsProfesores.MoveFirst Do Until rstConsProfesores.EOF 'Tapamos el hueco. If rstConsProfesores!ContadorAsistencias = 0 And rstConsProfesores!PosicionCola > intPosicionCola Then cnn.BeginTrans rstConsProfesores!PosicionCola = rstConsProfesores!PosicionCola - 1 rstConsProfesores.Update cnn.CommitTrans End If rstConsProfesores.MoveNext Loop rstConsProfesores.MoveFirst rstConsProfesores.Find (strCriterio) cnn.BeginTrans rstConsProfesores!PosicionCola = intNumEnCola 'Pasa al último de la cola -> PC = último; Nota: el código funciona ok si es el único profesor en la cola. rstConsProfesores!PosColaAlAsigUno = intPosicionCola 'Generamos PCAU. rstConsProfesores.Update cnn.CommitTrans ElseIf intPosColaAlElimUno > 0 And intPosColaAlAsigUno = 0 Then 'Caso PCEU > 0 -> caso particular: profesor eliminado previamente; Nota: PCAU debe valer cero. rstConsProfesores.MoveFirst Do Until rstConsProfesores.EOF 'Tapamos el hueco. If rstConsProfesores!ContadorAsistencias = 0 And rstConsProfesores!PosicionCola > intPosicionCola Then cnn.BeginTrans rstConsProfesores!PosicionCola = rstConsProfesores!PosicionCola - 1

Page 109: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 160 de 197

rstConsProfesores.Update cnn.CommitTrans End If rstConsProfesores.MoveNext Loop intNumEnColaCorreg = intNumEnCola - 1 If intNumEnColaCorreg >= intPosColaAlElimUno Then rstConsProfesores.MoveFirst 'Abrimos el hueco. Do Until rstConsProfesores.EOF If rstConsProfesores!ContadorAsistencias = 0 And rstConsProfesores!PosicionCola >= intPosColaAlElimUno Then cnn.BeginTrans rstConsProfesores!PosicionCola = rstConsProfesores!PosicionCola + 1 rstConsProfesores.Update cnn.CommitTrans End If rstConsProfesores.MoveNext Loop rstConsProfesores.MoveFirst rstConsProfesores.Find (strCriterio) cnn.BeginTrans rstConsProfesores!PosicionCola = intPosColaAlElimUno 'Vuelve a PCEU -> PC = PCEU y PCEU = 0. rstConsProfesores!PosColaAlElimUno = 0 rstConsProfesores.Update cnn.CommitTrans Else rstConsProfesores.MoveFirst rstConsProfesores.Find (strCriterio) cnn.BeginTrans rstConsProfesores!PosicionCola = intNumEnCola 'Nota: el código funciona ok si es el único profesor en la cola. rstConsProfesores!PosColaAlElimUno = 0 rstConsProfesores.Update cnn.CommitTrans End If Else DisplayMessage "Error desconocido (Identificador: SLTR-1)." End If ElseIf intNumTribunales > 1 Then 'Caso NS > 1 -> caso general; Nota: recordemos que NS >= 0, y si NS = 0 entonces quedan en blanco NSC,PC,PCA,PCE,PCAU y PCEU, por lo que el profesor no forma parte de la secuenciación. cnn.BeginTrans rstConsProfesores!ContadorAsistencias = 1 'Pasa a servicio -> NSC = 1 y PC = 0.

Page 110: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 161 de 197

rstConsProfesores!PosicionCola = 0 rstConsProfesores!PosColaAlAsignar = intPosicionCola 'Generamos PCA. rstConsProfesores.Update cnn.CommitTrans rstConsProfesores.MoveFirst Do Until rstConsProfesores.EOF 'Tapamos el hueco. If rstConsProfesores!ContadorAsistencias = 0 And rstConsProfesores!PosicionCola > intPosicionCola Then cnn.BeginTrans rstConsProfesores!PosicionCola = rstConsProfesores!PosicionCola - 1 rstConsProfesores.Update cnn.CommitTrans End If rstConsProfesores.MoveNext Loop Else DisplayMessage "Error desconocido (Identificador: SLTR-2)." End If ElseIf intContadorAsistencias > 0 And intPosicionCola = 0 Then 'Caso NSC > 0 y PC = 0 -> profesor en servicio. If intContadorAsistencias < intNumTribunales - 1 Then 'Caso NSC < NS - 1 -> profesor sin terminar el servicio. cnn.BeginTrans rstConsProfesores!ContadorAsistencias = rstConsProfesores!ContadorAsistencias + 1 'Incrementamos NSC. rstConsProfesores.Update cnn.CommitTrans ElseIf intContadorAsistencias = intNumTribunales - 1 And intPosColaAlAsignar = 0 And intPosColaAlEliminar > 0 Then 'Caso NSC = NS - 1, PCA = 0 y PCE > 0 -> profesor eliminado previamente que ha terminado el servicio. intNumEnCola = DCount("[ProfesorID]", "Profesores", "[ContadorAsistencias] = 0") If intNumEnCola >= intPosColaAlEliminar Then rstConsProfesores.MoveFirst Do Until rstConsProfesores.EOF 'Abrimos el hueco. If rstConsProfesores!ContadorAsistencias = 0 And rstConsProfesores!PosicionCola >= intPosColaAlEliminar Then cnn.BeginTrans rstConsProfesores!PosicionCola = rstConsProfesores!PosicionCola + 1 rstConsProfesores.Update cnn.CommitTrans End If rstConsProfesores.MoveNext Loop rstConsProfesores.MoveFirst rstConsProfesores.Find (strCriterio) cnn.BeginTrans rstConsProfesores!ContadorAsistencias = 0

Page 111: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 162 de 197

rstConsProfesores!PosicionCola = intPosColaAlEliminar 'Vuelve a PCE -> NSC = 0, PC = PCE y PCE = 0. rstConsProfesores!PosColaAlEliminar = 0 rstConsProfesores.Update cnn.CommitTrans Else cnn.BeginTrans rstConsProfesores!ContadorAsistencias = 0 rstConsProfesores!PosicionCola = intNumEnCola + 1 'Nota: el código funciona ok si no hay profesores en la cola. rstConsProfesores!PosColaAlEliminar = 0 rstConsProfesores.Update cnn.CommitTrans End If ElseIf intContadorAsistencias = intNumTribunales - 1 And intPosColaAlAsignar > 0 And intPosColaAlEliminar = 0 Then 'Caso NSC = NS - 1, PCA > 0 y PCE = 0 -> profesor asignado previamente que ha terminado el servicio. intNumEnCola = DCount("[ProfesorID]", "Profesores", "[ContadorAsistencias] = 0") cnn.BeginTrans rstConsProfesores!ContadorAsistencias = 0 rstConsProfesores!PosicionCola = intNumEnCola + 1 'Pasa al último de la cola -> NSC = 0, PC = último y PCA = 0; Nota: el código funciona ok si no hay profesores en la cola. rstConsProfesores!PosColaAlAsignar = 0 rstConsProfesores.Update cnn.CommitTrans Else DisplayMessage "Error desconocido (Identificador: SLTR-3)." End If Else DisplayMessage "Error desconocido (Identificador: SLTR-4)." End If Next varPosicion2 rstConsProfesores.Close rstTribunales.Close Set cnn = Nothing DoCmd.Close acForm, "SeleccionarTribunal" intNumProf = DCount("[MiembroID]", "Tribunales", "[SesionID] = " & lngSesionID) intNumProfSel = Forms!SesionesDeProyectos!CCNumProfesores

Page 112: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 163 de 197

intNumProfDif = intNumProfSel - intNumProf If intNumProf < intNumProfSel Then DisplayMessage "El número de profesores que faltan por asignar es de " & intNumProfDif & " (teniendo en " _ & "cuenta el número de profesores que ha elegido)." End If DoCmd.Hourglass False Exit_BCAsigFunc_Click: Exit Sub Err_BCAsigFunc_Click: DoCmd.Hourglass False DisplayMessage "Error desconocido (Identificador: SLTR-5)." Resume Exit_BCAsigFunc_Click End Sub

Page 113: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 164 de 197

Analizando el código observamos que éste recurre simplemente a la tabla Tribunales de

la base de datos y a la consulta ConsProfesores. Esta consulta ha sido creada con

Access y recoge a todos los profesores que pueden ser miembros de un tribunal,

mostrando además para cada profesor todos los campos procedentes de la tabla

Profesores y de la tabla Categorias que influyen en la secuenciación de los tribunales.

Expresada en lenguaje SQL, la consulta ConsProfesores queda de la siguiente manera:

“SELECT Profesores.ProfesorID, Profesores.Ap1Profesor, Profesores.Ap2Profesor,

Profesores.NombProfesor, Categorias.Prioridad, Profesores.Dedicacion,

Profesores.Antiguedad, Categorias.NumTribunales, Profesores.ContadorAsistencias,

Profesores.PosicionCola, Profesores.PosColaAlAsignar,

Profesores.PosColaAlEliminar, Profesores.PosColaAlAsigUno,

Profesores.PosColaAlElimUno, Profesores.FechaSalidaCola, Categorias.PosTrib

FROM Categorias INNER JOIN Profesores

ON Categorias.CategoriaID = Profesores.CategoriaID

WHERE Categorias.PosTrib = Yes;”

Los comentarios sobre el código aparecen en color verde, y se han utilizado las

siguientes abreviaturas para referirnos a los campos de la consulta ConsProfesores:

o NumTribunales = NS (número de sesiones de tribunal)

o ContadorAsistencias = NSC (número de sesiones de tribunal cumplidas)

o PosicionCola = PC (posición en la cola)

o PosColaAlAsignar = PCA (posición en la cola al asignar)

o PosColaAlEliminar = PCE (posición en la cola al eliminar)

o PosColaAlAsigUno = PCAU (posición en la cola al asignar, caso NS = 1)

o PosColaAlElimUno = PCEU (posición en la cola al eliminar, caso NS = 1)

o FechaSalidaCola = FHSC (fecha y hora de salida de la cola).

A continuación vamos a resumir las tareas que realiza el código VBA asociado al

evento Al hacer clic del botón Asignar (botón de comando BCAsigFunc) de la ficha

Profesores que pueden ser presidentes de un tribunal:

Page 114: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 165 de 197

Si no hemos seleccionado ningún profesor del cuadro de lista CLFuncionarios

aparece un mensaje indicando tal circunstancia.

Si la suma del número de profesores que hemos seleccionado en el cuadro de lista

CLFuncionarios y el número de profesores que ya figuran en el subformulario

SFTribunales del formulario Sesiones de tribunal resulta ser mayor que el número

indicado en el cuadro combinado CCNumProfesores del formulario Sesiones de

tribunal, entonces se muestra un mensaje indicando tal circunstancia y

especificando además cuál es el número máximo de tutores que podemos

seleccionar del cuadro de lista CLFuncionarios en ese momento.

Mostrar un mensaje cuando el curso académico o el mes en el que se celebra la

sesión de tribunal mostrada en el formulario Sesiones de tribunal se alejan

demasiado de la fecha actual proporcionada por el sistema operativo, pidiendo al

usuario que revise las fechas antes de continuar.

Introducir en la tabla Tribunales de la base de datos al profesor que hemos

seleccionado en el cuadro de lista CLFuncionarios. De esta forma, observaremos

como dicho profesor aparece en el subformulario SFTribunales de la sesión de

tribunal mostrada en el formulario Sesiones de tribunal. Si el profesor en cuestión

abandona la cola de la secuenciación, quedará registrada la hora y la fecha actual en

el campo FHSC del registro correspondiente a dicho profesor en la tabla Profesores

de la base de datos.

Introducir también en la tabla TribunalPfc de la base de datos al profesor que hemos

seleccionado en el cuadro de lista CLFuncionarios. De esta forma, observaremos

como dicho profesor aparece en el subformulario SFTribunalPfc del formulario

Proyectos fin de carrera cuando este formulario muestre cualquiera de los proyectos

que están incluidos en la sesión de tribunal mostrada en el formulario Sesiones de

tribunal.

Mostrar un mensaje cuando el curso académico o el mes en el que se celebra la

sesión de tribunal mostrada en el formulario Sesiones de tribunal se alejan

demasiado de la fecha actual proporcionada por el sistema operativo, preguntando al

usuario si desea que los cambios realizados (es decir, introducir en el tribunal de

dicha sesión al profesor seleccionado en el cuadro de lista CLFuncionarios) afecten

o no a la secuenciación de los tribunales.

Actualizar la secuenciación de los tribunales tras introducir en el tribunal al profesor

seleccionado en el cuadro de lista CLFuncionarios.

Page 115: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 166 de 197

Finalmente, mostrar un mensaje indicando el número de miembros del tribunal que

faltan por asignar si es que falta alguno.

Tanto en el código que acabamos de analizar como en el resto del código de la

aplicación hemos utilizado transacciones a la hora de introducir modificaciones en la

base de datos. Una transacción es un grupo de cambios que queremos que Access trate

como una operación única. Abrir una transacción indica a Access que recuerde los

cambios que haga, pero que espere hasta que cierre la transacción para guardarlos en el

disco. Si queremos abrir una transacción tenemos que utilizar el método BeginTrans del

objeto Connection, y para cerrarla el método CommitTrans.

Utilizar transacciones para realizar varios cambios en los datos tiene dos ventajas: puede

acelerar la ejecución del código, porque accede solamente una vez a la unidad de disco,

en lugar de acceder cada vez que cambie un registro; segundo, nunca dejará registros

parcialmente modificados si se produce un error o un corte del suministro eléctrico

antes de que se hayan realizado todos los cambios.

Por último, comentar que el código VBA asociado al evento Al hacer clic del botón

Asignar (botón de comando BCAsigProf) de la ficha Profesores que pueden ser

miembros de un tribunal es análogo al código VBA asociado al evento Al hace clic del

botón de comando BCAsigFunc que acabamos de analizar. Por otra parte, existe un

formulario llamado SeleccionarTribunalAgregar que es idéntico al formulario

SeleccionarTribunal. La única diferencia reside en que el formulario

SeleccionarTribunalAgregar se abre desde el formulario SesionesDeTribunalAgregar

mientras que SeleccionarTribunal se abre desde SesionesDeTribunal.

Page 116: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 167 de 197

6.9.- Descripción del resto de formularios Hemos realizado una descripción destallada de los formularios más importantes de la

aplicación de base de datos: Panel Principal, Proyectos fin de carrera, Sesiones de

tribunal, Profesores, etc. A continuación citaremos el resto de formularios que posee la

aplicación de base de datos haciendo una breve descripción de cada uno de ellos. Por

sencillez, nos referiremos a cada uno de ellos por su título en vez de por su nombre

como hemos venido haciendo hasta ahora.

1. Formulario Panel de configuración Presenta el siguiente aspecto:

Figura 6.9.a

Este formulario se abre al hacer clic sobre el botón Panel de configuración del

formulario Panel principal (ver figura 6.1.a). Desde el formulario Panel de

configuración podemos acceder a otros formularios que nos permiten configurar la

aplicación de base de datos para que funcione correctamente.

2. Formulario Secuenciación de los tribunales Presenta el siguiente aspecto:

Page 117: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 168 de 197

Figura 6.9.b

Este formulario se abre al hacer clic sobre el botón Secuenciación de los tribunales del

formulario Panel de configuración (ver figura 6.9.a). Desde el formulario

Secuenciación de los tribunales podemos modificar los parámetros que controlan dicha

secuenciación. En condiciones normales no habrá que utilizar este formulario pues la

secuenciación, una vez configurada, funciona por sí sola y no necesita mantenimiento.

Sin embargo, al instalar por primera vez la aplicación o cuando queramos alterar el

orden de la secuencia, haremos uso de este formulario, el cual debe ser manipulado por

un usuario avanzado que conozca bien el funcionamiento de la secuenciación. De todos

modos, si realizamos algún cambio que pueda alterar el buen funcionamiento de la

secuenciación, la aplicación mostrará un mensaje antes de guardar dicho cambio, en el

cual se explica dónde está la equivocación que hemos cometido para que podamos

corregirla.

3. Formulario Categorías Presenta el siguiente aspecto:

Page 118: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 169 de 197

Figura 6.9.c

Este formulario se abre al hacer clic sobre el botón Categorías del formulario Panel de

configuración (ver figura 6.9.a). El formulario Categorías muestra toda la información

asociada a las categorías de los profesores. Los registros de este formulario proceden de

la tabla Categorias de la base de datos y se muestran de uno en uno.

Veamos a continuación algunas de las características más destacadas que presenta el

formulario Categorías:

No podemos guardar o actualizar un registro si se detecta que existe otro registro

con la mima categoría (mismo contenido del cuadro de texto Categoría).

No es posible eliminar un registro del formulario Categorías que tiene registros

relacionados en el formulario Profesores. De esta forma evitamos que haya

profesores que se quedan sin pertenecer a ninguna categoría.

Si hacemos clic sobre el botón Editar registro para actualizar un registro del

formulario Categorías que tiene registros relacionados en el formulario Profesores,

entonces podremos modificar el contenido del formulario Categorías a excepción de

la casilla de verificación Los profesores pertenecientes a esta categoría pueden ser

miembros de un tribunal y del cuadro combinado Número de sesiones. De esta

forma evitamos que puedan producirse daños en la secuenciación de los tribunales.

Page 119: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 170 de 197

Podemos sacar un informe que contiene un listado con todas las categorías y sus

características, en el que las categorías aparecen ordenadas de mayor a menor

prioridad.

A la hora de modificar las prioridades de las diferentes categorías podemos utilizar

el formulario Modificar prioridades, que ha sido especialmente diseñado para

facilitar dicha tarea.

Por lo demás, el funcionamiento del formulario Categorías es similar al de otros

formularios de la aplicación como, por ejemplo, el formulario Profesores. De hecho,

existe un formulario titulado Categorías – Nuevo registro que se abre al hacer clic sobre

el botón Nuevo registro del formulario Categorías y sirve para incluir nuevas categorías

en la base de datos.

4. Formulario Modificar prioridades Presenta el siguiente aspecto:

Figura 6.9.d

Page 120: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 171 de 197

Este formulario se abre al hacer clic sobre el botón Modificar propiedades del

formulario Categorías (ver figura 6.9.c). El formulario Modificar propiedades sirve

para modificar de una forma rápida y sencilla las prioridades de las diferentes

categorías.

Al hacer clic sobre el botón Editar podemos introducir cambios en las prioridades, y si

hacemos clic sobre el botón Bloquear edición conseguiremos, por un lado, bloquear la

lista para que no se puedan introducir más cambios y, por otro, ordenar las categorías de

mayor a menor prioridad.

La prioridad de una categoría está representada por un número entero mayor o igual que

uno con el siguiente significado: la prioridad es menor conforme aumenta este número,

y la prioridad máxima corresponde al número uno. La categoría que tiene prioridad

sobre el resto es la de Catedrático de Universidad, y por tanto aparece con prioridad

uno. En la figura 6.9.d vemos también que algunas categorías que tienen igual

prioridad: por ejemplo, tanto Catedrático de Escuela Universitaria como Titular de

Universidad aparecen con prioridad dos.

5. Formulario Grupos de investigación Presenta el siguiente aspecto:

Figura 6.9.e

Page 121: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 172 de 197

Este formulario se abre al hacer clic sobre el botón Grupos de investigación del

formulario Panel de configuración (ver figura 6.9.a). El formulario Grupos de

investigación muestra toda la información asociada a los grupos de investigación

pertenecientes al Departamento de Organización Industrial y Gestión de Empresas. Los

registros de este formulario proceden de la tabla GruposInvestigacion de la base de

datos y se muestran de uno en uno.

Veamos a continuación algunas de las características más destacadas que presenta el

formulario Grupos de investigación:

No podemos guardar o actualizar un registro si se detecta que existe otro registro

con el mismo grupo de investigación (mismo contenido del cuadro de texto Grupo

de investigación).

No es posible eliminar un registro del formulario Grupos de investigación que tiene

registros relacionados en el formulario Profesores. De esta forma evitamos que haya

profesores que se quedan sin pertenecer a ningún grupo de investigación.

Podemos sacar un informe que contiene un listado con todos los grupos de

investigación pertenecientes al Departamento.

Podemos obtener un gráfico que muestra el número de proyectos fin de carrera

dirigidos según grupo de investigación. Haciendo clic sobre el botón Nº de PFCs

dirigidos según GI abrimos el formulario GIGraficos, el cual nos permite configurar

el gráfico mediante las siguientes opciones de configuración:

Tipo de gráfico: columna agrupada (gráfico GrafGIColAg) o columna apilada

(gráfico GrafGIColAp).

Cursos académicos: podemos seleccionar todos los cursos académicos o

solamente aquéllos que nos interesen.

Grupos de investigación: podemos seleccionar todos los grupos de investigación

o solamente aquéllos que nos interesen.

Por lo demás, el funcionamiento del formulario Grupos de investigación es similar al de

otros formularios de la aplicación como, por ejemplo, el formulario Profesores. De

hecho, existe un formulario titulado Grupos de investigación – Nuevo registro que se

Page 122: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 173 de 197

abre al hacer clic sobre el botón Nuevo registro del formulario Grupos de investigación

y sirve para incluir nuevas grupos de investigación en la base de datos.

6. Formulario Titulaciones Presenta el siguiente aspecto:

Figura 6.9.f

Este formulario se abre al hacer clic sobre el botón Titulaciones del formulario Panel de

configuración (ver figura 6.9.a). El formulario Titulaciones muestra todas las

titulaciones universitarias existentes en la Escuela Superior de Ingenieros de Sevilla.

Los registros de este formulario proceden de la tabla Titulaciones de la base de datos y

se muestran de uno en uno.

Veamos a continuación algunas de las características más destacadas que presenta el

formulario Titulaciones:

No podemos guardar o actualizar un registro si se detecta que existe otro registro

con la misma titulación (mismo contenido del cuadro de texto Titulación).

No es posible eliminar un registro del formulario Titulaciones que tiene registros

relacionados en el formulario Planes de estudios o en el formulario Proyectos fin de

carrera. De esta forma evitamos que haya planes de estudios o alumnos (es decir,

autores de un proyecto fin de carrera) que se quedan sin pertenecer a ninguna

titulación.

Page 123: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 174 de 197

Podemos sacar un informe que contiene un listado con todas las titulaciones

universitarias que se imparten en la Escuela Superior de Ingenieros de Sevilla.

Por lo demás, el funcionamiento del formulario Titulaciones es similar al de otros

formularios de la aplicación como, por ejemplo, el formulario Profesores. De hecho,

existe un formulario titulado Titulaciones – Nuevo registro que se abre al hacer clic

sobre el botón Nuevo registro del formulario Titulaciones y sirve para incluir nuevas

titulaciones en la base de datos.

7. Formulario Planes de estudios Presenta el siguiente aspecto:

Figura 6.9.g

Este formulario se abre al hacer clic en el botón Planes de estudios del formulario Panel

de configuración (ver figura 6.9.a). El formulario Planes de estudios muestra los

diferentes planes de estudios que existen así como la titulación a la que corresponde

cada uno de ellos. Los registros de este formulario proceden de la tabla PlanesEstudios

de la base de datos y se muestran de uno en uno.

Veamos a continuación algunas de las características más destacadas que presenta el

formulario Planes de estudios:

Page 124: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 175 de 197

No podemos guardar o actualizar un registro si se detecta que existe otro registro

con el mismo plan de estudios (mismo contenido del cuadro de texto Plan de

estudios y del cuadro combinado Titulación).

No es posible eliminar un registro del formulario Planes de estudios que tiene

registros relacionados en el formulario Intensificaciones/Especialidades o en el

formulario Proyectos fin de carrera. De esta forma evitamos que haya

intensificaciones/especialidades que se quedan sin pertenecer a ningún plan de

estudios o alumnos (es decir, autores de un proyecto fin de carrera) que pertenecían

a un determinado plan de estudios y dejan de pertenecer a él porque hemos

eliminado dicho plan.

Podemos sacar un informe que contiene un listado con todos los planes de estudios

así como la titulación a la que pertenece cada uno de ellos.

Por lo demás, el funcionamiento del formulario Planes de estudios es similar al de otros

formularios de la aplicación como, por ejemplo, el formulario Profesores. De hecho,

existe un formulario titulado Planes de estudios – Nuevo registro que se abre al hacer

clic sobre el botón Nuevo registro del formulario Planes de estudios y sirve para incluir

nuevos planes de estudios en la base de datos.

8. Formulario Intensificaciones/Especialidades Presenta el siguiente aspecto:

Figura 6.9.h

Page 125: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 176 de 197

Este formulario se abre al hacer clic sobre el botón Intensificaciones/Especialidades del

formulario Panel de configuración (ver figura 6.9.a). El formulario

Intensificaciones/Especialidades muestra las diferentes intensificaciones o

especialidades que existen así como el plan de estudios al que corresponde cada una de

ellas. Cada plan de estudios, a su vez, corresponde a una determinada titulación, como

ya vimos en el formulario Planes de estudios, y por este motivo en la lista desplegable

del cuadro combinado Plan de estudios aparece no sólo el nombre de los planes sino

también la titulación a la que corresponde cada uno de ellos. Los registros del

formulario Intensificaciones/Especialidades proceden de la tabla Intensificaciones de la

base de datos y se muestran de uno en uno.

Veamos a continuación algunas de las características más destacadas que presenta el

formulario Intensificaciones/Especialidades:

No podemos guardar o actualizar un registro si se detecta que existe otro registro

con la misma intensificación o especialidad (mismo contenido del cuadro de texto

Intensificación/Especialidad y del cuadro combinado Plan de estudios).

No es posible eliminar un registro del formulario Intensificaciones/Especialidades

que tiene registros relacionados en el formulario Proyectos fin de carrera. De esta

forma evitamos que haya alumnos (es decir, autores de un proyecto fin de carrera)

que pertenecían a una intensificación o especialidad y dejan de pertenecer a ella

porque hemos eliminado dicha intensificación o especialidad.

Podemos sacar un informe que contiene un listado con todas las intensificaciones y

especialidades así como el plan de estudios y la titulación a la que pertenece cada

una de ellas.

Por lo demás, el funcionamiento del formulario Intensificaciones/Especialidades es

similar al de otros formularios de la aplicación como, por ejemplo, el formulario

Profesores. De hecho, existe un formulario titulado Intensificaciones/Especialidades –

Nuevo registro que se abre al hacer clic sobre el botón Nuevo registro del formulario

Intensificaciones/Especialidades y sirve para incluir nuevas intensificaciones o

especialidades en la base de datos.

Page 126: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 177 de 197

9. Formulario Aulas de defensa Presenta el siguiente aspecto:

Figura 6.9.i

Este formulario se abre al hacer clic sobre el botón Aulas de defensa del formulario

Panel de configuración (ver figura 6.9.a). El formulario Aulas de defensa muestra las

distintas aulas o salones de la Escuela Superior de Ingenieros donde puede celebrarse la

defensa de los proyectos fin de carrera. Los registros de este formulario proceden de la

tabla Aulas de la base de datos y se muestran de uno en uno.

No podemos guardar o actualizar un registro si se detecta que existe otro registro con

igual aula (mismo contenido del cuadro de texto Aula de defensa). Tampoco podemos

eliminar un registro del formulario Aulas de defensa que tiene registros relacionados en

el formulario Sesiones de tribunal. De esta forma evitamos que haya sesiones de

tribunal que tenían asignada un aula y se pierde este dato porque hemos eliminado dicha

aula.

Por lo demás, el funcionamiento del formulario Aulas de defensa es similar al de otros

formularios de la aplicación como, por ejemplo, el formulario Profesores. De hecho,

existe un formulario titulado Aulas de defensa – Nuevo registro que se abre al hacer clic

sobre el botón Nuevo registro del formulario Aulas de defensa y sirve para incluir

nuevas aulas en la base de datos.

Page 127: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 178 de 197

10. Formulario Proyectos fin de carrera como tutor Presenta el siguiente aspecto:

Figura 6.9.j

Este formulario se abre al hacer clic sobre el botón PFCs como tutor del formulario

Profesores (ver figura 6.2.a). El formulario Proyectos fin de carrera como tutor muestra

todos los proyectos fin de carrera dirigidos por el profesor cuyo nombre y apellidos

figuran en la parte superior izquierda del formulario. Este profesor no es otro que el

mostrado por el formulario Profesores en el momento de hacer clic sobre el botón PFCs

como tutor. La información que se ofrece de cada proyecto fin de carrera es la siguiente:

curso académico, título del proyecto, así como el nombre y los apellidos del autor, o

sea, del alumno.

Si queremos que solamente aparezcan en la lista los proyectos correspondientes a un

determinado curso académico, entonces debemos introducir el curso académico deseado

en el cuadro de texto Curso académico y hacer clic sobre el botón Filtrar. Para que

vuelvan a mostrarse todos los proyectos, basta con hacer clic sobre el botón Quitar

filtro.

Page 128: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 179 de 197

Existe la posibilidad de generar un certificado de dirección de proyectos fin de carrera

en el que se recogen todos los proyectos fin de carrera dirigidos por el profesor en

cuestión. Además, este informe puede recoger solamente los proyectos correspondientes

a un cierto curso académico si antes de hacer clic en el botón Certificado dirección

PFCs introducimos en el cuadro de texto Curso académico dicho curso.

Finalmente, si seleccionamos cualquiera de los proyectos fin de carrera que aparecen en

la lista y hacemos clic sobre el botón Ir a Proyectos Fin de Carrera, entonces se

cerrarán los formularios que están abiertos, o sea, Proyectos fin de carrera como tutor y

Profesores, y se abrirá el formulario Proyectos fin de carrera, de tal forma que el

proyecto mostrado en este formulario es el que habíamos seleccionado previamente en

el formulario Proyectos fin de carrera como tutor.

11. Formulario Proyectos fin de carrera como miembro del tribunal Presenta el siguiente aspecto:

Figura 6.9.k

Este formulario se abre al hacer clic sobre el botón PFCs como miembro del tribunal

del formulario Profesores (ver figura 6.2.a). El formulario Proyectos fin de carrera

Page 129: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 180 de 197

como miembro del tribunal muestra todos los proyectos fin de carrera a los que ha

asistido como miembro del tribunal el profesor cuyo nombre y apellidos figuran en la

parte superior izquierda del formulario. Este profesor no es otro que el mostrado por el

formulario Profesores en el momento de hacer clic sobre el botón PFCs como miembro

del tribunal. La información que se ofrece de cada proyecto fin de carrera es la

siguiente: curso académico, título del proyecto, así como el nombre y los apellidos del

autor, o sea, del alumno.

Si queremos que solamente aparezcan en la lista los proyectos correspondientes a un

determinado curso académico, entonces debemos introducir el curso académico deseado

en el cuadro de texto Curso académico y hacer clic sobre el botón Filtrar. Para que

vuelvan a mostrarse todos los proyectos, basta con hacer clic sobre el botón Quitar

filtro.

Existe la posibilidad de generar un certificado de asistencia a tribunales de proyectos fin

de carrera en el que se recogen todos los proyectos fin de carrera a los que ha asistido

como miembro del tribunal el profesor en cuestión. Además, este informe puede recoger

solamente los proyectos correspondientes a un cierto curso académico si antes de hacer

clic en el botón Certificado asistencia tribunales PFCs introducimos en el cuadro de

texto Curso académico dicho curso.

Finalmente, si seleccionamos cualquiera de los proyectos fin de carrera que aparecen en

la lista y hacemos clic sobre el botón Ir a Proyectos Fin de Carrera, entonces se

cerrarán los formularios que están abiertos, o sea, Proyectos fin de carrera como

miembro del tribunal y Profesores, y se abrirá el formulario Proyectos fin de carrera,

de tal forma que el proyecto mostrado en este formulario es el que habíamos

seleccionado previamente en el formulario Proyectos fin de carrera como miembro del

tribunal.

12. Formularios Buscar registros Existen tres formularios que poseen este título (Buscar registros) y sus nombres son los

siguientes: BuscarProfesores, BuscarProyectos y BuscarSesiones. Para acceder a ellos

tenemos que hacer clic sobre el botón de comando Buscar registros del formulario

Page 130: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 181 de 197

Profesores (ver figura 6.2.a), Proyectos fin de carrera (ver figura 6.4.a) y Sesiones de

tribunal (ver figura 6.6.a) respectivamente.

Veamos a continuación el aspecto que presentan estos tres formularios:

Figura 6.9.l – Formulario BuscarProfesores

Figura 6.9.m – Formulario BuscarProyectos

Page 131: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 182 de 197

Figura 6.9.n – Formulario BuscarSesiones

Son formularios de búsqueda de registros, que contienen cuadros de texto y cuadros

combinados en los que introducimos o seleccionamos los criterios de búsqueda. Cada

cuadro de texto va acompañado de un cuadro combinado en el que podemos seleccionar

si hacer coincidir todo el campo, cualquier parte del campo o el comienzo del campo.

Podemos utilizar todos o solamente aquellos cuadros de texto y cuadros combinados

que nos interesen.

Una vez definidos los criterios de búsqueda, tenemos que hacer clic sobre el botón

Buscar y entonces se cerrará el formulario Buscar registros y observaremos que los

registros del formulario Profesores, Proyectos fin de carrera o Sesiones de tribunal han

sido filtrados de acuerdo con los criterios de búsqueda seleccionados en el formulario

BuscarProfesores, BuscarProyectos o BuscarSesiones respectivamente.

13. Formularios Ir a registro Existen siete formularios que poseen este título (Ir a registro) y sus nombres son los

siguientes: CuadroProfesores, CuadroCategorias, CuadroGruposInvestigacion,

CuadroTitulaciones, CuadroPlanesEstudios, CuadroIntensificaciones y CuadroAulas.

Para acceder a ellos tenemos que hacer clic sobre el botón de comando Ir a registro del

formulario Profesores (ver figura 6.2.a), Categorías (ver figura 6.9.c), Grupos de

investigación (ver figura 6.9.e), Titulaciones (ver figura 6.9.f), Planes de estudio (ver

Page 132: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 183 de 197

figura 6.9.g), Intensificaciones/Especialidades (ver figura 6.9.h) y Aulas de defensa (ver

figura 6.9.i) respectivamente.

Veamos a continuación el aspecto que presentan cada uno de estos formularios:

Figura 6.9.o – Formulario CuadroProfesores

Figura 6.9.p – Formulario CuadroCategorias

Figura 6.9.q – Formulario CuadroGruposInvestigacion

Page 133: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 184 de 197

Figura 6.9.r – Formulario CuadroTitulaciones

Figura 6.9.s – Formulario CuadroPlanesEstudios

Figura 6.9.t – Formulario CuadroIntensificaciones

Page 134: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 185 de 197

Figura 6.9.u – Formulario CuadroAulas

Todos estos formularios sirven para localizar y desplazarnos rápidamente hacia un

registro determinado. Por ello cuentan con un cuadro de lista en el que aparecen todos

los registros del formulario desde el cual hemos abierto el formulario Ir a registro. Si

seleccionamos uno de los registros del cuadro de lista y hacemos clic sobre el botón

Seleccionar, entonces se cierra el formulario Ir a registro y aparece el registro

seleccionado en el formulario correspondiente.

14. Formularios Ordenar registros Existen tres formularios que poseen este título (Ordenar registros) y sus nombres son

los siguientes: OrdenarProfesores, OrdenarProyectos y OrdenarSesiones. Para acceder

a ellos tenemos que hacer clic sobre el botón de comando Buscar registros del

formulario Profesores (ver figura 6.2.a), Proyectos fin de carrera (ver figura 6.4.a) y

Sesiones de tribunal (ver figura 6.6.a) respectivamente.

Los tres formularios presentan el mismo aspecto y es el siguiente:

Page 135: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 186 de 197

Figura 6.9.v – Ejemplo del formulario OrdenarProfesores

Nos apoyaremos en el ejemplo de la figura 6.9.v para comprender el funcionamiento de

los formularios Ordenar registros. En este caso, los registros del formulario Profesores

quedarán de la siguiente manera:

Agrupados por categorías, es decir, aparecen juntos todos los profesores

pertenecientes a una misma categoría.

Dentro de cada categoría, los profesores están ordenados de mayor a menor

dedicación.

Si dentro de una misma categoría hay dos o más profesores con igual

dedicación, entonces aparecerán ordenados de mayor a menor antigüedad, es

decir, de menor a mayor fecha a partir de la cual el profesor pertenece a su

categoría.

15. Formularios Seleccionar tutor Existen dos formularios que poseen este título (Seleccionar tutor) y sus nombres son los

siguientes: SeleccionarTutor y SeleccionarTutorAgregar. Para acceder a ellos tenemos

que hacer clic sobre el botón de comando Seleccionar perteneciente a la ficha Tutor del

formulario Proyectos fin de carrera (ver figura 6.4.c) y Proyectos fin de carrera –

Nuevo registro respectivamente.

Page 136: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 187 de 197

Los dos formularios presentan el mismo aspecto y es el siguiente:

Figura 6.9.w

En la figura 6.9.w podemos ver que el formulario contiene un cuadro de lista con todos

los profesores del Departamento. Si seleccionamos a uno o varios de los profesores del

cuadro de lista y hacemos clic sobre el botón Asignar, entonces se cierra el formulario

Seleccionar tutor y aparece el profesor o los profesores seleccionados en el

subformulario SFTutores del formulario Proyectos fin de carrera (en el caso del

formulario SeleccionarTutor) o Proyectos fin de carrera – Nuevo registro (en el caso

del formulario SelecccionarTutorAgregar).

16. Formulario Seleccionar profesores Presenta el siguiente aspecto:

Figura 6.9.x

Page 137: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 188 de 197

Este formulario contiene un cuadro de lista con todos los profesores del Departamento.

Si seleccionamos a uno o varios de los profesores del cuadro de lista y hacemos clic

sobre el botón Asignar, entonces se cierra el formulario Seleccionar profesores y

aparece el profesor o los profesores seleccionados en el subformulario SFTribunalPfc

del formulario Proyectos fin de carrera.

17. Formularios Seleccionar proyectos fin de carrera Existen dos formularios que poseen este título (Seleccionar proyectos fin de carrera) y

sus nombres son los siguientes: SeleccionarPfc y SeleccionarPfcAgregar. Para acceder

a ellos tenemos que hacer clic sobre el botón de comando Seleccionar perteneciente a la

ficha Proyectos fin de carrera del formulario Sesiones de tribunal (ver figura 6.4.c) y

Sesiones de tribunal – Nuevo registro respectivamente.

Los dos formularios presentan el mismo aspecto y es el siguiente:

Figura 6.9.y

El formulario Seleccionar proyectos fin de carrera cuenta con un cuadro de lista en el

que figuran todos los proyectos fin de carrera que todavía no han sido asignados a

ninguna sesión de tribunal. Si seleccionamos uno o varios de los proyectos del cuadro

de lista y hacemos clic sobre el botón Asignar, entonces se cierra el formulario

Seleccionar proyectos fin de carrera y aparece el proyecto o los proyectos

seleccionados en el subformulario SFProyectos del formulario Sesiones de tribunal (en

el caso del formulario SeleccionarPfc) o Sesiones de tribunal – Nuevo registro (en el

caso del formulario SelecccionarPfcAgregar).

Page 138: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 189 de 197

18. Formulario Números de tutores Presenta el siguiente aspecto:

Figura 6.9.z

Este formulario se abre al hacer clic sobre el botón Nº de tutores del formulario Panel

de configuración (ver figura 6.9.a). El formulario Números de tutores contiene todos los

valores que aparecen en la lista desplegable del cuadro combinado Número de tutores

(CCNumTutores) perteneciente a la ficha Tutor de los formularios Proyecto fin de

carrera (ver figura 6.4.c) y Proyectos fin de carrera – Nuevo registro. Como ya

sabemos, este cuadro combinado nos permite añadir nuevos valores a su lista

desplegable. Pues bien, el formulario Números de tutores sirve para eliminar aquellos

valores que deseamos que no aparezcan en dicha lista debido a que, por ejemplo, han

sido añadidos por error.

19. Formulario Números de proyectos fin de carrera El aspecto que presenta este formulario es muy parecido al del formulario Números de

tutores (ver figura 6.9.z). El formulario Números de proyectos fin de carrera se abre al

hacer clic sobre el botón Nº de proyectos fin de carrera del formulario Panel de

configuración (ver figura 6.9.a), y contiene todos los valores que aparecen en la lista

desplegable del cuadro combinado Número de proyectos fin de carrera

(CCNumProyectos) perteneciente a la ficha Proyectos fin de carrera de los formularios

Sesiones de tribunal (ver figura 6.6.b) y Sesiones de tribunal – Nuevo registro. Como ya

sabemos, este cuadro combinado nos permite añadir nuevos valores a su lista

desplegable. Pues bien, el formulario Números de proyectos fin de carrera sirve para

Page 139: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 190 de 197

eliminar aquellos valores que deseamos que no aparezcan en dicha lista debido a que,

por ejemplo, han sido añadidos por error.

20. Formulario Números de profesores El aspecto que presenta este formulario es muy parecido al del formulario Números de

tutores (ver figura 6.9.z). El formulario Números de profesores se abre al hacer clic

sobre el botón Nº de profesores del formulario Panel de configuración (ver figura

6.9.a), y contiene todos los valores que aparecen en la lista desplegable del cuadro

combinado Número de profesores (CCNumProfesores) perteneciente a la ficha Tribunal

de los formularios Sesiones de tribunal (ver figura 6.6.b) y Sesiones de tribunal – Nuevo

registro. Como ya sabemos, este cuadro combinado nos permite añadir nuevos valores a

su lista desplegable. Pues bien, el formulario Números de profesores sirve para eliminar

aquellos valores que deseamos que no aparezcan en dicha lista debido a que, por

ejemplo, han sido añadidos por error.

21. Formulario Números de sesiones El aspecto que presenta este formulario es muy parecido al del formulario Números de

tutores (ver figura 6.9.z). El formulario Números de sesiones se abre al hacer clic sobre

el botón Nº de sesiones del formulario Panel de configuración (ver figura 6.9.a), y

contiene todos los valores que aparecen en la lista desplegable del cuadro combinado

Número de sesiones perteneciente a los formularios Categorías (ver figura 6.9.c) y

Categorías – Nuevo registro. Como ya sabemos, este cuadro combinado nos permite

añadir nuevos valores a su lista desplegable. Pues bien, el formulario Números de

sesiones sirve para eliminar aquellos valores que deseamos que no aparezcan en dicha

lista debido a que, por ejemplo, han sido añadidos por error.

22. Formulario Prioridades El aspecto que presenta este formulario es muy parecido al del formulario Números de

tutores (ver figura 6.9.z). El formulario Prioridades se abre al hacer clic sobre el botón

Prioridades del formulario Panel de configuración (ver figura 6.9.a), y contiene todos

los valores que aparecen en la lista desplegable del cuadro combinado Prioridad

(CCPrioridad) perteneciente a los formularios Categorías (ver figura 6.9.c) y

Categorías – Nuevo registro. Como ya sabemos, este cuadro combinado nos permite

Page 140: bibing.us.esbibing.us.es/proyectos/abreproy/3919/descargar... · INTERFAZ DE USUARIO Y CÓDIGO VBA Página 53 de 197 Una vez construida la base de datos podemos empezar a diseñar

INTERFAZ DE USUARIO Y CÓDIGO VBA

Página 191 de 197

añadir nuevos valores a su lista desplegable. Pues bien, el formulario Prioridades sirve

para eliminar aquellos valores que deseamos que no aparezcan en dicha lista debido a

que, por ejemplo, han sido añadidos por error.

23. Formulario Dedicaciones El aspecto que presenta este formulario es muy parecido al del formulario Números de

tutores (ver figura 6.9.z). El formulario Dedicaciones se abre al hacer clic sobre el botón

Dedicaciones del formulario Panel de configuración (ver figura 6.9.a), y contiene todos

los valores que aparecen en la lista desplegable del cuadro combinado Dedicación

(CCDedicacion) perteneciente a los formularios Profesores (ver figura 6.2.a) y

Profesores – Nuevo registro (ver figura 6.3.a). Como ya sabemos, este cuadro

combinado nos permite añadir nuevos valores a su lista desplegable. Pues bien, el

formulario Dedicaciones sirve para eliminar aquellos valores que deseamos que no

aparezcan en dicha lista debido a que, por ejemplo, han sido añadidos por error.