¿Cómo puedo buscar un registro seleccionado de un cuadro de lista y que al encotrarlo un subformulario se actualice?

Es un poco complicado, pero tratare de hacerlo lo más comprensible posible.

Estoy haciendo una base de datos para una escuela, específicamente del área de Orientación Educativa y por más que lo he intentado no puedo lograr lo siguiente:

Para cada alumno, debe de haber la capacidad de múltiples registros (por ejemplo, si reprueba o si comete alguna falta al reglamento) es por eso el subformulario.

Ahora al seleccionar el nombre del alumno en el cuadro de lista, me gustaría que me salieran los reportes que tiene, pero al escogerlo, no me cambia los datos del subformulario.

Lo que busco es que al seleccionar el alumno en el cuadro de lista, me mande al registro del alumno y me salga reflejado en el subformulario.

Les anexo una imagen a ver si ayuda.

1 Respuesta

Respuesta
2

No dices cuantas columnas tiene el cuadro de lista y por tanto la columna dependiente. Por otro lado, tampoco dices( al menos yo no veo) el campo por el que debe filtrase el subformulario. Vamos a suponer, lo digo por el tamaño, que el subformulario se llama Expedientes y depende de una consulta llamada consulta1, que tiene el campo nombrealumno.

En el evento después de actualizar del cuadro de lista, al que llamaremos Lista0

expediente.form.recordsource="select * from consulta1 where nombrealumno='" & me.lista0 & "'"

Esto suponiendo que el cuadro de lista tenga sólo una columna. Si tuviera 2, con idalumno(como oculta )y Nombrealumno y que la columna dependiente sea la 1 tendrías que poner algo así

expediente.form.recordsource="select * from consulta1 where idalumno=" & me.lista0 & ""

Hola Gracias por tu pronta respuesta!

La lista solo tiene una columna, el campo por el que debe filtrarse el subformulario es el nombre del alumno,

El subformulario no depende de ninguna consulta, ya que no se hacer que un mismo alumno pueda tener varios "reportes" por media de una consulta :( ... realmente tengo mas de 12 años que no utilizo Access y apenas estoy recordando (pero nunca fui muy bueno)

Siguiendo con la base de datos. 

Si no baso mi subformulario "expediente" en una consulta relacionado con el Alumno, podré hacer lo que busco?

La parte de si no baso... no la he entendido

Mira tengo una tabla Clientes, de la que solo voy a usar unos campos. Con ella hago un formulario independiente, más o menos parecido al tuyo y lo pongo como subformulario del formulario 1 donde tengo un cuadro de lista como el tuyo

Voy a elegir a Annette. Tal como hago clic en su nombre

Como puedes ver en el subformulario me pone el registro de ella. El código del evento Después de actualizar del cuadro de lista Lista0 le pongo

Clientes.Form.RecordSource = "select * from clientes where nombrecontacto='" & Me.Lista0 & "'"

Es decir., el origen de registros del subformulario será aquel registro de la tabla Clientes en que el nombre del alumno sea igual al que acabo de elegir en el cuadro de lista.

Mientras exista la función Dlookup, el origen del subformulario puede ser cualquier tabla, consulta o lo que sea.

No se si me puedas hacer el favor de ver la base de datos y decirme que es lo que tengo mal :(

Ahí dentro del formulario EXPEDIENTE puse un mensaje de lo que necesitaría. 

En esta dirección la subí. 

Gracias de antemano

https://mega.nz/#!3w01RIDL!MW-nzKAppl_T6MAqKNp21gAnEhP5vGNRW4Rg3CuENMg

Vamos por partes

1º Si el formulario expedientes es sólo para meter datos en el subformulario, no debes hacerlo depender de la tabla alumnos, lo lógico sería hacerlo independiente.

2º El cuadro de lista tiene dos columnas, otra cosa es que una la tengas con el ancho 0, pero esa es la columna dependiente, es decir, en el cuadro de lista el valor que "manda" es Idalumno.

3º Tus razones tendrás, pero yo quitaría el cuadro de lista y lo convertiría en un cuadro combinado. Entre otras cosas, tiene la ventaja de la expansión automática y además te permite que si pusieras el nombre de un alumno que no está en la lista, te abra el formulario Alumnos para que lo des de "alta".

En tu caso, por cierto no hables mal de Hector Johan porque en la tabla Reportes no tiene nada el pobre.

Basta con que pongas

4º Si vas a elegir el nombre del cuadro de lista no le veo sentido al cuadro de texto txtbuscar, o si lo vas a dejar, yo lo pondría que me buscase una cadena del nombre para no tener que escribir todo.

5º Personalmente no cuelgo nada en la nube. Aquí sólo las queremos para que llueva y no cae ni una gota. Por eso, si quieres, repito, si quieres, mándame un mensaje a cabarcos@ono y te la mando un poco retocada. Si lo haces, en el asunto del mensaje pon tu alias Ivan Pérez, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas