¿Cómo realizar una búsqueda en ACCESS según opciones predeterminadas?

Yo tengo un ACCESS con 2 tablas, una donde están los datos de los alumnos de una escuela, llamada "Datos", en la cual una de las columnas contiene qué materia está cursando el alumno que depende (por una relación) de la segunda tabla ("Curso/Carrera") donde están las carreras y sus respectivas materias.

Lo que quiero hacer es un formulario donde me de para seleccionar una de todas las carreras y que me devuelva 4 datos (Legajo, DNI, Apellido, Nombre) de cada alumno que curse esa carrera. Así, por ejemplo, despliego una lista que me deje elegir entre Ingeniería, Medicina y Abogacía, y al elegir Medicina, me devuelva el Legajo, DNI, Apellido Y Nombre (datos que están en la tabla "Datos") de todos los alumnos que estén cursando la carrera Medicina.

Se de una función SELECT o algo parecido, pero realmente no entiendo mucho.

1 respuesta

Respuesta
1

Sebastián: A mi modo de ver no necesitas una consulta, y me explico.

Si confeccionas un Formulario "Continuo" con Origen de Datos en esa Tabla de "Datos", y en la cabecera, le pones ese desplegable que comentas, lo que necesitas es un Filtro.

Voy a suponer que ese desplegable se llama CboCarreras con una sola columna, y es donde eliges una carrera.

En el Evento Después de actualizar (AferUpdate del Combo le pones éste código.

Private Sub CboCarreras_AfterUpdate()
Dim FiltroCarrera As String
FiltroCarrera = "Carrera = '" & Me.CboCarreras & "'"
Me.Filter = FiltroCarrera
Me.FilterOn = True
End Sub

Al no poner si en lugar de que el Campo se llame Carrera y sea evidentemente Texto, lo he puesto así. Si es que es un Identificador de tipo numérico me comentas. Y si tienes dificultades, pones por favor una imagen de las dosTablas y su relación. Un saludo >> Jacinto

Sebastián: Aparte de lo que te he comentado, en éste enlace tienes un ejemplo de varias maneras de recuperar datos. Es de Emilio Verastegui

https://www.dropbox.com/s/ded7r9cz6qldp5e/FormasCombos.mdb?dl=0 

Y el texto completo lo tienes en>>

http://emilioverastegui.blogspot.com.es/2015/02/usando-dos-o-mas-tablas-en-un.html 

Mis saludos >> Jacinto

Muchas Gracias!!! Me re sirvió, de hecho, ya me salió!!!

Disculpa que moleste nuevamente, pero me surgió un problema. Resulta que ahora que estoy aplicando la búsqueda, al filtrar por Matemática me salen todos los datos de los alumnos que cursan Matemática y así con todos, pero me pasa que siempre el primero de todos los datos siempre está y se le modifica la carrera que cursa. En otras palabras, supongamos que el primero de todos los registros/datos se llama PEREZ Alberto y cursa Matemática, bueno al filtrar por Matemática me aparecen sus datos, lo cual está bien. Sin embargo, luego cuando cambio el filtro de Matemática a Ingeniería, para que me aparezcan los datos de los alumnos de Ingeniería, no solo me aparecen esos alumnos sino que además me aparece PEREZ Alberto como si estuviese haciendo la carrera Ingeniería (se modifica uno de sus datos).

¡No entiendo por qué! :(

Sebastián: La verdad es que si que es extraño. Como primera medida y si has operado con el Formulario continuo que te comenté, en Vista de diseño >> Propiedades >> Datos >> Tipo de Recordset >> Archivo SnapShot

Si es que no es así me comentas que metodología has seguido. Mis saludos >> Jacinto

Hola Jacinto, hice lo que me acabas de decir, eso de cambiar a Archivo SnapShot, y al hacerlo ya ni siquiera podía cambiar la carrera, o sea, se despliega la lista pero no puedo elegir ninguna opción.

Sebastián: Una cuestión >>

1.- El combo debe tener lógicamente Origen de Fila pero "No" Origen de Datos.

Debe ser Independiente. Un saludo >> Jacinto

Ya pude resolver este tema. Resulta que estaba haciendo algo mal con el código. Ahora bien, agregué más criterios de búsqueda (Modalidad, Turno y Año), lo que necesito es que si no selecciono ninguna de las opciones que me ofrece me busque para todas las opciones que hay. En otras palabras, si selecciono Matemática pero en Modalidad no selecciono ni Mañana ni Noche, que me busque a aquellos alumnos que hacen Matemática tanto a la Mañana como a la Noche.

PD: El código me quedó así:

Private Sub Comando72_Click()
Dim FiltroCarrera As String
FiltroCarrera = "Carrera = '" & Me.Cuadro_combinado61 & "' AND Modalidad = '" & Me.Cuadro_combinado68 & "' AND Turno = '" & Me.Cuadro_combinado70 & "' AND Año = '" & Me.Cuadro_combinado87 & "'"
Me.Filter = FiltroCarrera
Me.FilterOn = True

Sebastián: Suelo reomendar que mientras no se tenga una soltura grande en concatenar filtros se desmunucen y luego se junten con el AND.

En éste caso serían. Carrera, Modalidad, Turno y Año

Dim FiltroCarrera As String, FiltroModalidad As String, FiltroTurno As String, FiltroAño As String

Dim FiltroTotal As String

FiltroTotal = FiltroCarrera & " AND " & FiltroModalidad & " AND " & ........

En cualquier caso mi sugerencia sería que generes una pregunta nueva, porque ésta tiene mucho escrito y nadie la va a leer y tu pierdes la oportunidad de tener más de una respuesta, y adaptar la que mejor se te adapte. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas