¿Cómo podría realizar una base de datos sobre registros de estudiantes hecha en Access en su versión 2013?

Requiero hacer una base de datos que contenga el registro digital de militares a un destacamento que imparte varios cursos (al momento del registro se le asigna el curso que realizará). En hoja se ve sencillo, mi problema es que jamás he usado Access y es completamente distinto a otras plataformas que trabajan directamente con códigos. He visto muchos tutoriales pero todos muestran ejemplos muy básicos y caen en donde tengo dudas específicas para realizar esta base de datos.

Escapando de los campos de cada tabla (asumiendo también que los formularios, consultas e informes te permiten seleccionar los campos de distintas tablas al momento de diseñarlos), ¿cómo podría tener compuesta esta base de datos?

¿Cuántas tablas podría tener? (Hasta los momentos, la base de datos tiene creada la tabla de Profesionales, Instructores, Cursos y Contenido Programático)

¿Qué uso le podría dar a las consultas?

¿Qué uso le podría dar a los formularios? Mi visión novata me hace verlos como las pantallas con las que el usuario va a interactuar, en dado caso, además del obvio formulario para registro de los profesionales, ¿qué otros formularios podría tener y cómo hacer que registren datos continuos? (De no ser las pantallas de interfaz de usuario, ¿en qué parte del programa me permite hacerlo?)

Oh, y no tengo muy claro lo que son subformularios y su aplicación.

¿Es necesario usar macros? ¿Para qué sirven? Y probablemente la pregunta más importante: ¿Es necesario codificar alguna parte de la base de datos con Visual Basic, MYSQL?

Muchas gracias por leer y disculpen si fui engorroso o me salté algún detalle. Estaré al pendiente de sus respuestas.

Respuesta
1

Intentare responder a todas tus preguntas.

¿Cómo podría tener compuesta esta base de datos?
Lo que comentas parece muy similar a la típica tabla de empleados y departamentos. Aunque en este caso son militares y cursos. Estas siempre se suelen estructurar igual. Tabla de empleados/militares, tabla de departamentos/destinos, tabla de trabajos/cursos. Lo importante es que todas y cada una de ellas tengan claves (principales o secundarias) para que puedas relacionar unas con otras. Como utilizaras muchas consultas sobre varias tablas simultáneamente, indizar todos los campos posibles la hará más rápida.

¿Cuántas tablas podría tener?

Todas las que quieras. Aunque Access no es una base de datos como la que puedes tener en un servidor para una web. Muchas tablas cargadas simultáneamente pueden hacerla demasiado lenta o dar muchos problemas. Intenta simplificar lo más posible.

¿Qué uso le podría dar a las consultas?

Ver datos de las tablas filtrando por condiciones.

Ver datos de varias tablas relacionadas entre si (también pueden tener condiciones)

Consultas de relaciones cruzadas (que se suelen usar para contar o sumar campos sobre un único valor) por ej, la cantidad de cursos que ha hecho cada persona.

Consultas de actualización (muy parecidas a SQL) donde podemos hacer cambios en campos sobre una gran cantidad de registros de manera cómoda y basándonos en unas condiciones.

¿Qué uso le podría dar a los formularios?

Los formularios son una forma cómoda y visual de consultar, modificar o grabar nuevos registros uno a uno. Es lo típico que se suele mostrar al usuario de la base como única pantalla y ocultarle todo lo demás. El administrador rara vez los usa.

¿Qué otros formularios podría tener y cómo hacer que registren datos continuos?

Formularios los que quieras. Mientras el equipo los aguante... Puedes cargar varios formularios con actualizaciones automáticas. Basadas en un reloj con el evento al cronometro o basadas en eventos que ocurran sobre otros formularios. Las opciones son toda slas que se te puedan llegar a ocurrir.

No tengo muy claro lo que son subformularios y su aplicación

Son un formulario que hemos puesto dentro de otro formulario. Supón que tengo un formulario con el personal y otro con los cursos. Estos formularios tienen sus tablas de origen relacionadas entre si. Entonces puedo poner el formulario de cursos dentro del de personal como un subformulario, para ver todos los cursos de una sola persona. De esa forma sobre "un solo formulario" podría ver un registro de una persona y al mismo tiempo todos los registros de sus cursos.

¿Es necesario usar macros?

Si, absolutamente.

¿Para qué sirven?

Automatizan procesos o realizan tareas por detrás que de otra manera el usuario no podría hacer. Cambian diseños en tiempo real, bloquean o permiten accesos... Es programación. Sirven para todo lo que se nos pueda ocurrir.

¿Es necesario codificar alguna parte de la base de datos con Visual Basic, MYSQL?

La versión 2013 tiene un editor de macros tipo drag&drop bastante bueno e intuitivo, pero... casi toda la info y ayuda que encontraras en internet esta escrita en VB. Además los que llevamos años usando office lo preferimos con diferencia. Por posibilidades y costumbre más que nada.

Gracias por tu rápida y extensa respuesta.

Como utilizaras muchas consultas sobre varias tablas simultáneamente, indizar todos los campos posibles la hará más rápida.

¿Qué quieres decir con indizarlas? ¿Te refieres a ponerle todos los campos posibles?

Consultas de relaciones cruzadas (que se suelen usar para contar o sumar campos sobre un único valor) por ej, la cantidad de cursos que ha hecho cada persona.

¿Me puede indicar cómo hacer esto exactamente? Aún no sé cómo colocarle las restricciones, además me surgió un par de dudas...

1.- Si una persona ya se encuentra registrada y se le asigna realizar un segundo curso, ¿cómo actualizar sus datos en la tabla de profesionales? ¿Debo dar como llave secundaria el número de identificación para que sea más fácil el acceso a su registro? Eso, para una persona en específica.

2.- Si por ejemplo en la primera mitad del año se registran 10 militares en el curso "X", y en la segunda mitad se vuelven a registrar otros 10 militares nuevos en ese mismo curso, ¿cómo separarlos en base a las consultas? Lo pregunto porque no tienen fechas estándar de inicio en cuanto a los cursos, y en mi tabla "Cursos" cada curso está denominado por un código que es la llave principal; si llamo al segundo grupo de ese mismo curso, ¿cómo hacer que no aparezcan los viejos registros y viceversa?

Gracias por leer.

¿Qué quieres decir con indizarlas? ¿Te refieres a ponerle todos los campos posibles?

Indizar (o indexar) es una propiedad de los campos, que básicamente genera un indice oculto para un campo. Esto hace más rápida la ejecucción de consultas y demás. Cuando creas un campo en una tabla, del mismo modo que indicas cosas como: permitir duplicados, el formato que tendrá, etc. también indicaras si quieres que se indexe. Hace un poco más lento grabar nuevos registros pero es casi inapreciable. Siempre es recomendable poner los campos indizados.

¿Me puede indicar cómo hacer esto exactamente?

Las consultas de referencias cruzadas conviene que en un principio las hagas con el asistente, por que son más complicadas.

Supongamos que tenemos la tabla de Personal y queremos saber cuanto personal había en cada ciudad por meses. El asistente nos pedirá primero que tabla u otra consulta tiene los datos que queremos ver, en este caso la de personal. Luego nos pedirá el campo que queremos usar como filas, en este caso el campo donde estén los nombres de las ciudades. Luego nos pedirá el campo de las columnas, en este caso un campo que tenga la fecha de cuando fueron destinados a esa ciudad y como queremos agruparla (por días, meses, años,...) y por ultimo que valor contamos, en este caso valdría un campo donde estuviera por ejemplo los nombres del personal.

Luego en la vista de edición de la consulta podemos poner en cada campo los criterios. En este tipo de consultas los criterios están limitados. En las consultas normales podemos utilizar bastantes más. Por ejemplo en ciudad poner un criterio de "Madrid" o "Barcelona" para ver solo esas ciudades. O en fecha >01/01/2016 para ver solo este año.

Lo que luego comentas sobre los puntos son más cosas del diseño de la base. En ese caso lo que veo es que tendrás que trabajar sobre filtrar los resultados. Podrías hacer los formularios sobre una consulta en lugar de sobre la tabla directamente. Pero seria demasiado extenso para explicártelo de una sola vez todo. Te recomiendo que vayas probando y abras preguntas para cada caso. Si no esta duda va a acabar siendo un caos.

Tiene toda la razón en cuanto a lo último, me otorgó una buena base para comenzar a diseñarlo, muchas gracias por la orientación, de verdad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas