Buscar registro en access con selección de 5 cuadros combinados

Expertos

Espero que me puedan ayudar, estoy trabajando con un formulario donde tengo un total de 8 campos, (estos 8 campos también los tengo en una base). Los primeros 5 campos de esta base son cuadros combinados, y lo que necesito es que al seleccionar opciones en los 5 primeros campos, al presionar un botón el resto de los campos me traigan los valores correspondientes a la combinación de datos

Ingresadas en los 5 primeros campos.

Espero que se entienda.

He tratado de hacerlo con el asistente para crear botones pero ninguna de las opciones que está ahí me funciona, ¿cómo se puede configurar el botón para que haga lo que necesito?

Espero que me puedan ayudar.

Les adjunto imágenes para explicarlo mejor.

2 respuestas

Respuesta
2

La solución a tu problema es mucho más sencilla: usa la función DLookUp(). Eso sí, has de corregir los duplicados o siempre te devolverá la primera coincidencia.

En el código de tu botón pon:

Me.Respuesta1=DLookUp("Respuesta1","BASE";"CampoClave='" & Me.Campo1 & Me.Campo2 & Me.Campo3 & Me.Campo4 & Me.Campo5 &"'")

Me.Respuesta2=DLookUp("Respuesta2","BASE";"CampoClave='" & Me.Campo1 & Me.Campo2 & Me.Campo3 & Me.Campo4 & Me.Campo5 &"'")

Y así con las otras 3...

Un saludo.


Respuesta
1

Una observación el registro 17 y 18 están repetidos por los campo que quieres filtrar, al igual que otros mas están repetidos, Access no sabrá cuales respuestas quieres mostrar.

Lo que quieres hacer, yo la haría con código VBA en el evento después de actualizar de cada combo.

El origen del fila de tu combo1 sera tu campo 1,

El origen de la fila de combo2 sera tu campo 2 y filtrando el campo1 con lo que tengas en campo1.

El origen de la fila de combo3 sera tu campo 3 y filtrando el campo1 con lo que tengas en campo1 y filtrando el campo2 con lo que tengas en campo2.

Así sucesivamente hasta llegar a tu combo5.

En el evento después de actualizar del combo5 :

Asignaras el resultado a tus campos respuestas. Con la propiedad .Column

De esa manera yo lo haría.

Gracias! verdad, hay algunos duplicados, los quitaré. 

suena lógico pero no sé con que comandos hacerlo, aprendí a usar un poco de VB para excel, pero de acces no sé nada, ¿ con este procedimiento al completar el combobox 5, se haría el match y completaría los 3 faltantes? 

Tienes un ejemplo de como quedaría el código del combobox 3?

origen de la fila CmbEstudiante=  SELECT Estudiantes.IdEstudiante, [Apellido1] & " " & [Apellido2] & " " & [Nombre1] & " " & [Nombre2] AS NombreEstudiante FROM Estudiantes; 
Private Sub CmbEstudiante_Click()
Me.CmbAño = Null
Me.CmbGrado = Null
Me.CmbAño.RowSource = "SELECT Matricula.Año FROM Matricula WHERE Matricula.Id_estudiante = " & Me.CmbEstudiante & " GROUP BY Matricula.Año"
End Sub
Private Sub CmbAño_Click()
    Me.CmbGrado = Null
    Me.CmbGrado.RowSource = "SELECT Grados.Id_grado , Grados.Nombre FROM Grados INNER JOIN Matricula ON Grados.Id_grado = Matricula.Grado WHERE Matricula.Id_estudiante = " & Me.CmbEstudiante & " AND Matricula.Año= " & Me.CmbAño & ""
End Sub
Private Sub CmbGrado_Click()
End Sub

El ejemplo anterior ¿que hace? 

Tengo 3 combos aquí ocupe el evento al hacer click.

CmbEstudiaste me da a seleccionar los nombre del estudiante, al seleccionar 1, me cmbAño le asigno su origen de la fila (Me. CmbAño. RowSource ) filtrando por lo que tiene mi combo1

Matricula.Id_estudiante = " & Me.CmbEstudiante & "

Así también filtro para grado, tomando en cuanta los resultados pasados

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas