Introducir datos de otras tablas relacionadas

Tengo 3 tablas. Los campos que aplican a esta pregunta son:
Tabla PUESTOS
- Puesto de trabajo
(En esta tabla introduzco todos los puestos de trabajo de la empresa)
Tabla CURSOS:
- Puesto de trabajo
- Código del curso
(En esta tabla introduzco los códigos de los cursos que afectan a cada puesto de trabajo. "Puesto de trabajo" lo selecciono de la tabla PUESTOS, mediante cuadro combinado)
Tabla TEMARIO:
- Nombre trabajador
- Puesto de trabajo
- Código del curso
- Temas
(En esta tabla, primero seleccionado el "Puesto de trabajo" del trabajador de la tabla PUESTOS mediante cuadro combinado. Y quiero que para cada registro a la hora de introducir el "Código de Curso" me salga un cuadro combinado de todos los "Código de Curso" de la tabla CURSOS que afectan para es puesto de trabajo, datos que habré introducido con anterioridad en dicha tabla. Para después poner los temas que hay que impartirle)
Pues esto último es lo que no consigo, una vez que tengo para cada trabajador su puesto seleccionado buscándolo en la tabla PUESTOS (por ejemplo "mecánico), no soy capaz de que a la hora de introducir el "código de curso" me busque en la tabla CURSOS el puesto que acabo de introducir (en este ejemplo "mecánico") y me ofrezca la posibilidad de elegir de entre todos los cursos para este puesto el que voy a impartirle a dicho trabajador(p.e. "mecánico" tiene asignados los siguientes cursos "A1", "A2", "A3").
No sé si has entendido mi duda, sino intento aclarártela mejor.

1 respuesta

Respuesta
1
Ante todo, perdón por la demora pero estuve probando alternativas y encontré una que resulta efectiva. Aquí va:
Te propongo la siguiente solución:
1. Abre un formulario nuevo cuyo origen de registros sea la tabla Temario
2. Coloca un combo: Origen del control (el campo IdPuesto) y origen de fila la tabla Puestos.
3. Coloca un textbox con Origen del Control el campo IdPuesto
4. Coloca otro combo independiente (que no dependa de ningún campo de la tabla Temario). Con dos columnas (puedes ocultar la primera con ancho = 0)
5. Coloca un textbox con Origen del Control el campo CodCurso
6. Los campos Nombre y Temas son controles comunes que están vinculados a los respectivos campos
7. Escribes este código en el módulo de VBA asociado.
? Estas variables son para guardar la elección de puesto y código de curso
Private P As Long
Private C As String
?Cuando cambia el valor de IDPuesto guardamos su valor en la variable P
Private Sub ccIdPuesto_LostFocus()
P = CLng(ccIdPuesto.Column(0))
End Sub
? Este código permite construir la consulta deseada: cursos por puesto y toma como criterio el valor de la variable P (IdPuesto)
Private Sub CodCurso_GotFocus()
Dim s As String
s = "SELECT cursos.IdPuesto, cursos.Codcurso "
s = s + " FROM cursos WHERE (((cursos.IdPuesto) = "
s = s & P & " ))ORDER BY cursos.IdPuesto, cursos.Codcurso;"
CodCurso.RowSource = s
CodCurso.Requery
End Sub
? Cuando se pasa a escribir los temas del curso, usamos la variable C para pasar su valor al textbox que está vinculado con el curso.
Private Sub CodCurso_LostFocus()
C = CodCurso.Text
txtCodCurso.SetFocus
txtCodCurso.Text = C
End Sub
Probé este código y realmente hace lo que tu pedías.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas