Inicio > Visual Basic > boy14 > problemas con el combo

problemas con el combo

Experto:
Usuario:
Fecha: 30/10/2007
Valoración: (3,00 sobre 5) Categoría: Visual Basic
03/09/2007
chivas_visua, usuario preguntando en Visual Basic
Usuario
hola mira tengo 2 combo en el primero despliego un lista de datos y lo coloque con este codigo

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.
04/09/2007
chivas_visua, experto respondiendo en Visual Basic
Experto
hola, si tienes almacenado un una base de datos la informacion que deseas mostrar en el combo2 lo que puedes hacer es programar en el evento clic del combo 1 es una sentencia de selecion en base al item que hayan seleccionado en el combo1 (usando un control data) para que te seleccione de la base de datos la informacion unicamente del combo1, este es un ejemplo:
agrega un data al formulario y este es el codigo:

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 informacion en la base de datos podrias hacer 2 cosas:
1) almacenar la informacion 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 acuardo al item que seleccionaste pones visible el combo que necesites..

Espero te sirva... Saludos
05/09/2007
chivas_visua, usuario preguntando en Visual Basic
Usuario
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 vienestar.

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 radiente es decir difumador de tiempo y renovador, asi 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 codigo. De nuevo gracias espero que me puedas ayudar.
06/09/2007
chivas_visua, experto respondiendo en Visual Basic
Experto
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.. espero te sirva, saludos

16/09/2007
chivas_visua, experto respondiendo en Visual Basic
Experto
Por favor te agradezco que finalices la pregunta
26/10/2007
chivas_visua, experto respondiendo en Visual Basic
Experto
Por favor te agradezco que finalices la pregunta
30/10/2007
chivas_visua, usuario preguntando en Visual Basic
Usuario
ok disculpa por no a ver finalizado la pregunta pero si me sirvio tu informacion muy buena gracias
Enlaces patrocinados