Access - Combo actualizado en función de otro

 
Vista:

Combo actualizado en función de otro

Publicado por phoenix (40 intervenciones) el 16/01/2011 20:55:13
Tengo dos combos relacionados que se basan ambos en una misma tabla:

Esa tabla "Género" tiene un id (que admite duplicados), un campo Género1 y otro campo Género2. Los valores que se repiten son en Género1 (digamos que es género1: narrativa, y en género 2 si es narrativa puede ser aventuras, ciencia-ficción, clásicos...)

El caso es que en el primer combo para Género1 he puesto en origen de fila SELECT DISTINCT Género.Género1 FROM Género; (Uso distinct para que no se me repitan los valores)
Y en el segundo combo, el del Género2, he puesto SELECT Género.Género2 FROM Género WHERE ((Género!Género1=Formularios!Libros!Género1));

Me funciona bien con el valor del primer combo Género1 que aparece por defecto, pero CUANDO CAMBIO EL VALOR DEL COMBO, NO ME RESPONDE EN EL SEGUNDO, es decir, siguen apareciendo los valores que tenía.

¿Cómo puedo hacer para que se actualicen los valores del segundo en el momento que escoja otro valor en el primero?

Vi algo de Me.Requery. Lo he probado poniéndolo como código en después de actualizar el primer Combo:

Private Sub Género1_AfterUpdate()
Me.Requery
End Sub

Pero no me funciona.

Agradezco cualquier aclaración sobre el tema, o si lo he complicado mucho y hay algún otro modo de hacer que se relacionen los dos combos entre sí...

Gracias
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Combo actualizado en función de otro

Publicado por QUIQUE (293 intervenciones) el 17/01/2011 00:39:48
QUIZAS ESTO TE SIRVA.

MIRÁ DONDE DICE TARIFAS , EL CÓDIGO ESTÁ EXPLICADO.

http://cid-ccb878ae4ff946b4.office.live.com/self.aspx/.Public/bd%20Pacientes.rar#resId/CCB878AE4FF946B4!143

Sigo con mis vacaciones.

Saludos

QUIQUE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Combo actualizado en función de otro

Publicado por phoenix (40 intervenciones) el 17/01/2011 22:57:49
He revisado lo de tarifas, pero no es exactamente lo que busco.

Es decir, si en el primer combo eligiéramos Narrativa (es del campo Genero1), y entonces se tendrían que desplegar en el segundo las distintas opciones del Genero2 que tienen de campo Género1 Narrativa: Ciencia ficción, clásicos..etc.
Y si en el primer combo eligiéramos Ciencia, entonces se tendrían que poder desplegar en el segundo Divulgación, Física, Geografía, etc (los correspondientes a Ciencia)

Todas los posibles campos de Previsión tienen Torax, cerebro, y eco abdominal en Examen.
Por otro lado tampoco necesito hacer luego que salgan cadenas con los valores, tal como sale en el ejemplo.
En cualquier caso he probado a hacer la parte de la actualización del primer combo, por si eso me hacía algo; poniendo los nombres de mi base de datos, pero no ha dado resultado
(podría ser porque no sabia exactamente cual es el nombre de mi formulario para sustituir la parte IsNull(Forms!frmTarifas!cbop...)

Unicamente necesito que salga los distintos valores en el segundo combo, en función del valor elegido en el primero.

Muchas gracias de todos modos.

Por cierto Quique ,¿ te conozco?. He pensado qué podrías ser alquien que conozco, pero me parece sorprendente.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xavi

RE:Combo actualizado en función de otro

Publicado por xavi (16 intervenciones) el 18/01/2011 13:59:42
Hola,

En tu primer mensaje tienes un pequeño error que, corregido (y a falta de confirmar un pequeño detalle) deberia funcionar.

Dónde dice que puedes utilizar el Requery para que se recalcule el contenido del combo.... ahí casi lo tienes... pero haces un Me.Requery (o sea: recalcular TODO el formulario) cuando deberias hacer un Me!Genero1.Requery

Por otro lado indicarte que, si el formulario es continuo... la cosa puede complicarse.

Un saludo

Xavi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Combo actualizado en función de otro

Publicado por phoenix (40 intervenciones) el 18/01/2011 23:06:56
Hola
Gracias Xavi.

SOLUCIONADO. Gracias por la explicación tb.
He utilizado lo que dices de Me!Genero1.Requery, pero con una pequeña variante, porque si no no me funcionaba, he puesto Me!Genero2.Requery,
En realidad, al cambiar el combo del Genero1, tiene que modificarse el combo Genero2 para poder seleccionar los valores oportunos

Una pega muy leve que me queda ahora es que el valor que sale en el combo genero2 al cambiar el combo1, es el mismo que había anteriormente. Eso sí, cuando lo despliego, puedo seleccionar entre los oportunos.

Es decir, yo tengo seleccionado en combo1 Narrativa y en combo2 Ciencia Ficción.
Cambio el combo1 a Teatro y en el combo2 ME SIGUE APARECIENDO CIENCIA FICCIÓN. Eso sí, si despliego el combo2, puedo seleccionar los valores correspondientes a Teatro, es decir Clásico, Contemporáneo, etc.

¿No habría alguna forma de que automáticamente al cambiar el valor del primer combo,
a) apareciese el primer valor correspondiente del segundo (es decir en este caso, que al pasar de Narrativa a Teatro, el valor que hubiese en el combo2 fuera Clásico por defecto) o
si eso no puede ser opción

b) que apareciese el valor de combo2 en blanco por defecto

?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xavi

RE:Combo actualizado en función de otro

Publicado por xavi (16 intervenciones) el 19/01/2011 11:44:39
Hola,

Cierto: debes actualizar el segundo, no el primero (no tendria gracia alguna)

En la web de Happy puedes encontrar el código necesario para seleccionar un elemento: http://accessvbafaq.mvps.org/item.asp?pagina=55

Y, si deseas dejarlo en blanco, añade esta línea justo despues del requery:
Me!Genero2 = Null

Un saludo

Xavi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Combo actualizado en función de otro

Publicado por phoenix (40 intervenciones) el 19/01/2011 22:19:33
Gracias de nuevo, xavi

A ver, he probado según el método de la web Happy... lo que he hecho es poner en la linea después del requery:
Me!Género2.Selected(0) = True

pero me da error:
SE HA PRODUCIDO EL ERROR 438 EN TIEMPO DE EJECUCIÓN. EL OBJETO NO ADMITE ESTA PROPIEDAD O MÉTODO.

No obstante lo segundo, tal como lo has dicho me sale perfecto.
Así que lo tengo resuelto. Lo que quería en sí ya lo tengo, muchas gracias.

Sólo me queda el gusanillo de como se podría poner el primero de la lista, según el método que has indicado.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xavi

RE:Combo actualizado en función de otro

Publicado por xavi (16 intervenciones) el 20/01/2011 13:22:45
Es que te puse el link a como seleccionar en un ListBox y tu quieres en un ComboBox.

Seria así:
Me.combo = Me.combo.ItemData(0)

Y el link es este:
http://accessvbafaq.mvps.org/item.asp?pagina=56

Xavi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Combo actualizado en función de otro

Publicado por phoenix (40 intervenciones) el 20/01/2011 22:01:43
Muchas gracias, xavi. Todo Ok

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar