Ayuda con problemas de combos al desplegar listas utilizando Visual Basic

Hola mira tengo 2 combo en el primero despliego un lista de datos y lo coloque con este código
Private Sub Form_Activate()
ChDir App.Path
Combo1.SetFocus
Combo1.AddItem "Radiance"
Combo1.AddItem "Comfort"
Combo1.AddItem "Wellness"
Combo1.AddItem "Balance"
Combo1.AddItem "Special Spa Services For The Two Of You"
Combo1.AddItem "Salon Spa Services"
Combo1.AddItem "Waxing"
End Sub
ahora vien en el segundo combo quiero desplegar otra lista que al seleccionar el radiante del primer combo me despliegue otra lista del radiante, asi sucesivamente para los demas, se puede o no si no me podrias decir de que forma lo hago gracias.

1 Respuesta

Respuesta
1
Si tienes almacenado un una base de datos la información que deseas mostrar en el combo2 lo que puedes hacer es programar en el evento clic del combo 1 es una sentencia de selección en base al item que hayan seleccionado en el combo1 (usando un control data) para que te seleccione de la base de datos la información unicamente del combo1, este es un ejemplo:
Agrega un data al formulario y este es el código:
Data1.DatabaseName = App.Path & "\bd.mdb" ' nombre de la base de datos
Data1.RecordSource = "datos" ' nombre de la tabla donde tienes los datos requeridos
Private Sub Combo1_Click()
Data1.RecordSource = "SELECT * FROM datos WHERE trim(datos.cod) = '" + Trim(Combo1) + "'" ' puedes cambiar el criterio de busqueda a tu necesidad
Data1.Refresh
With Combo2
.Clear
Data1. Refresh
While Not Data1.Recordset.EOF
.AddItem Data1. Recordset! Detalle ' nombre del campo de la tabla que tiene en la base de datos
Data1. Recordset. MoveNext
Wend
End With
End Sub
Ahora si no tienes almacenada la información en la base de datos podrías hacer 2 cosas:
1) Almacenar la información en base de datos y usas el ejemplo anterior.
2) Creas varios combos, los llenas cada uno de acuerdo a la necesidad que tienes para cada item del combo1, y los tienes invisibles y al hacer clic en el combo1 de acuerdo al item que seleccionaste pones visible el combo que necesites..
Hola espero que estés bien, disculpa por molestarte de nuevo pero la verdad no he podido entender tu código seria mucho pedir que me crees el código mira mi base de datos se llama Spa.mdb y mi tabla se llama tipo servicio.
Al primer combo tiene una lista que se lo agregue con este código que ya te había mostrado:
Private Sub Form_Activate()
ChDir App.Path
Combo1.SetFocus
Combo1.AddItem "Radiante"
Combo1.AddItem "Consistente"
Combo1.AddItem "Relajante"
Combo1.AddItem "Explora"
Combo1.AddItem "Servicio Del Spa Para El y Ella"
Combo1.AddItem "Servicio de Salon"
Combo1.AddItem "Depilaciones"
End Sub
Mira mi tabla esta formada de la siguiente forma:
Nombre servicio Radiante
Clase servicio Difumador de tiempo
Nombre Servicio Radiante
Clase servicio Renovador
Nombre Servicio Consientete
Clase servicio Experiencia de lujo
Nombre servicio Consientete
Clase servicio Aromas de bienestar.
Estos son algunos de los componentes que va a tener mi tabla, ahora bien lo que quiero es que al seleccionar en el combo1 en la lista "Radiante" en el combo2 me muestre la lista del radiante es decir difumador de tiempo y renovador, así sucesivamente si selecciono en el combo1 consientete en el combo2 me muestre la lista que seria Experiencia de lujo y Aromas. Gracias espero me puedas ayudar es que la verdad no soy muy bueno utilizando Sql y veo que utilizaste ese código. De nuevo gracias espero que me puedas ayudar.
Ok copia lo siguiente (agrega un control data en el formulario que se llame data1):
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\Spa.mdb"
Data1.RecordSource = "Nombre servicio"
End Sub
Private Sub Combo1_Click()
Data1.RecordSource = "SELECT * FROM Nombre servicio WHERE trim(Nombre servicio.Nombre servicio) = '" + Trim(Combo1) + "'"
Data1.Refresh
With Combo2
. Clear
Data1. Refresh
While Not Data1.Recordset.EOF
. AddItem Data1. Recordset! Clase servicio
Data1. Recordset. MoveNext
Wend
End With
End Sub
Me imagino que "Nombre servicio" es el nombre del campo que llenas para el combo1 y "Clase servicio" es el nombre del campo para llenar para el combo2 de la tabla Nombre servicio..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas