llenar un combo box con otro

hadeska
11 de Julio del 2005
hola, que tal un saludo
quisiera que alguin me podria explicar como llenar un combox con otros (ejmplo)
combo uno (elije vehiculo), combo dos carga (partes de el vehiculo)
mis tablas son en SQL ya estan relacionadas
gracias por su tiempo

mvallejos
11 de Julio del 2005
Debes tener una Sub ListarPartes, que genera un listado de partesen el segundo combo, a partir de un vehículo seleccionado en el primer combo.
Esta sub la llamas desde el evento click del primer combo.

Saludos

hadeska
11 de Julio del 2005
gracias, por la ayuda, lo que no entendi muy bien, es lo del Vehiculo, te aclaro que soy nuevo en el tema, gracias otra vez

mvallejos
11 de Julio del 2005
Para empezar, caba vez que listas los valores de una tabla en un combo, utilizas la descripción para el AddItem y el ItemData para ir guardando paralelamente los códigos de esas descripciones.
De este modo, cada bez que seleccionas un item en un combo, ya puedes accedr a su código.
Ejemplo

Private Sub Combo1_Click()
Dim Cod as integer
Cod = Combo1.ItemData(Combo1.ListIndex)
ListarPartes Cod
End Sub

Esto significa que por otro lado, debes tener una Sub Listarpartes, que tome el parámetero del código de vehículo y genere una consulta sql que llene el 2do combo

Saludos

hadeska
11 de Julio del 2005
gracias mvallejos por tu tiempo, espero no incomodarte mucho

el codigo que utilizo para llenar mi primer combo es este

Private Sub Form_Load()
DATA.rstabla.Open

With DATA.rstabla

While Not .EOF
cbocombo.AddItem (!campo)
.MoveNext
Wend
End With
End Sub

ahi me carga bien el primer combo, cada registro que carga en ese combo, esta relacionado con un codigo de la otra tabla ejemplo

tabla 1 tabla2
codigo 1 carro codigo 1
motor 22 r
colo azul

eso es lo que no se como hacerlo mi instruccion SQL creo que va asi

Select registro1 from tabla1 where registro2 like "combo1" (los parematros de la consulta nos on los correctos, pero solo es un ejemplo de lo que estoy haciendo)

gracias otra vez, me sirve de mucho tu ayuda

mvallejos
11 de Julio del 2005
A ver si nos entendemos

Llenado del combo de vehiculos

Sub ListarVehiculos
Dim Sql as String
Dim R as New ADODB.Recordset
Combo1.Clear
Sql = "Select Cod_v,Vehiculo From Vehiculo"
R.Open Sql,Conexion,AdOpenStatic
Do while Not R.EOF
Combo1.AddItem r!Vehiculo
Combo1.ItemData(Combo1.NewIndex) = R!Cod_V
R.MoveNext
Loop
R.Close
End Sub

Ahora, vamos a listar las partes, la sub toma comop parametro el codigo de vehiculo

Sub ListarPartes(Cod)
Dim Sql as String
Dim R as New ADODB.Recordset
Combo2.Clear
Sql = "Select Cod_p,Parte From Partes "
Sql = Sql & " Where Cod_v = " & cod
R.Open Sql,Conexion,AdOpenStatic
Do while Not R.EOF
Combo2.AddItem r!Parte
Combo2.ItemData(Combo2.NewIndex) = R!Cod_p
R.MoveNext
Loop
R.Close
End Sub

El evento click del combo1 queda así

Private Sub Combo1_Click
Dim Cod
Cod=Combo1.ItemData(Combo1.ListIndex)
ListarPartes Cod
End Sub

Con esto, cada vez que selecciones un vehículo, automaticamente se te actualiza el segundo combo, el de las partes.

Demás está aclarar que yo invento el nombre de las tablas y los campos ya que no conozco tu modelo de datos, vos ponele los nombres que corresponden.




hadeska
11 de Julio del 2005
gracias, por toda tu ayuda, creo que con eso le hecho ganas y lo podre hacer, sos muy amable y si algun dia puedo auidarte estare a la orde, gracias