Mostrar columnas de una consulta o table que cumplan una condición

Tengo una tabla con los campos(columnas): descripción_tarea, pepito, maria, jaime. Tarea es texto y las columnas con nombre de personas es numérico donde doy una evaluación del 1 al 10 sobre cada tarea a cada persona. Tengo un formulario donde escribo un nombre de una persona y quiero traer desde la tabla; las columnas tareas y la columna del mismo nombre escrito. Osea que la columna de la persona que se trae cumpla la condición que es la misma persona que he escrito en el formulario.

¿Alguna idea? Estoy en MS Access 2007.

1 respuesta

Respuesta
1

¿Cómo quieres mostrar la información: en una tabla/consulta, en un subformulario dentro del formulario, en un cuadro de lista dentro del formulario?

Una aproximación, podría ser esta:

Crea 3 consultas sobre la tabla, cogiendo, para cada una de ellas una columna de los nombre, es decir, una consulta con los campos descripción_tarea y pepito (la guardas como Cpepito), otra con los campos descripción_tarea y maria (la guardas como Cmaria) y la tercera con los campos descripción_tarea y jaime (la guardas como Cjaime)

En tu formulario, en el evento después de actualizar del cuadro donde introduces el nombre (supondré que se llama txtNombre), le generas este código:

Select case Me.txtNombre

Case "pepito"

DoCmd.OpenQuery "Cpepito"

Case "maria"

DoCmd.OpenQuery "Cmaria"

Case "jaime"

DoCmd.OpenQuery "Cjaime"

End Select

Hola  Sveinbjorn El Rojo

Gracias por responder; quiero presentar la información en un subformulario.. Tu solución la había tomado en cuenta, pero en realidad tengo 60 nombres de personas y podría crecer; eso significaría crear 60 querys. Mi idea era escribir un nombre en el formulario; y hacer una condición que me agregue a una consulta la columna que coincida con ese nombre... Espero tu comentario; gracias..

En ese caso, podrías recalcular el origen del subformulario una vez elegido un nombre, algo así:

Dim miSQL As String
'Si no escribes nada, no haces nada
If Nz(Me.txtNombre, "") = "" Then Exit Sub
'Creas la consulta con el nombre elegido
miSQL = "SELECT descripcion_tarea, " & Me.txtNombre & " As Nombre FROM NombreTabla"
'Se la asignas al subformulario
Me.NombreSubForm.Form.RecordSource = miSQL
Me.NombreSubForm.Form.lblNombre.Caption = Me.txtNombre
Me.NombreSubForm.Requery
'Lo haces visible
Me.NombreSubForm.Visible = True

Como pasos previos, has de crear una consulta con los campos que vas a tener (da igual la columna del nombre que elijas, porque luego se va a borrar), pero es importante que al campo que elijas lo renombres a, por ejemplo "Nombre"

Luego te creas un formulario sobre esa consulta, y le borras el origen del registro. Ahora ya puedes eliminar la consulta.

Como el proceso es algo complejo, te dejo aquí un ejemplo: BD

Wowww.. El trabajo que me has ahorrado!!!!!!! mil gracias..... te lo agradeceré aportando lo que pueda para otros usuarios en éste foro..!!!!

No te olvides de valorar la respuesta. XD

Hola Sveinbjorn El Rojo

Me ha surgido un problema y no sé como solucionarlo. Siento dar la chapa.. Cuando el nombre de la persona está compuesto por nombre y apellidos me da un error de sintaxis. Si solo es nombre ningún problema. He puesto entre corchetes [ ] Me.[txtNombre] pero no hay forma.. ;(

Pon así la instrucción SQL:

miSQL = "SELECT descripcion_tarea, [" & Me.txtNombre & "] As Nombre FROM Tareas"

Es decir, añádele los corchetes antes y después de las comillas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas