Combobox en Visual basic 6.0

Hola emperador20, estoy haciendo una aplicación en visual basic 6.0 conectado con una base de datos en sql 2000. Lo que pasa es lo siguiente:
Quisiera que al momento de cargar el combobox me aparezca los nombres, pero que al momento de guardar el combobox se guarde con el código de ese nombre.
Te adjunto el código para ver que me esta faltando. Agradeciéndote de antemano.
Private Sub Form_Load()
Dim BD As ADODB.Connection
Dim rs As ADODB.Recordset
Set BD = New ADODB.Connection
Set rs = New ADODB.Recordset
BD.Open "Provider= SQLOLEDB; Initial Catalog= BETTELING;Data Source= (local); integrated security=SSPI; persist security info= true;"
rs.CursorLocation = adUseClient
rs.Open "SELECT * FROM Proveedor", BD, adOpenStatic, adLockOptimistic
With rs
Do Until .EOF
Combo4.AddItem .Fields(1)
.MoveNext
Loop
End With

rs.Close
La parte de negro es donde cargo el combo con el campo 1 de la tabla proveedor.

1 respuesta

1
Respuesta de
Hola mira te comento como lo trabajo yo,
la lógica que uso es como la de vectores paralelos
cargo 2 combos 1 con el id_proveedor y el otro con el nombre del proveedor
por supuesto el combo1 de id tiene que estar visible=false
entonces al cargar el combo los 2 se cargan al mismo tiempo teniendo el mismo indice
cuando vos elegís un nombre de la lista de proveedores y después quieres usar ese código tienes que poner así:
comboidprofe.list(combonombreprov.listindex)
aca tenemos que te muestre el codigo del combo de id profe en la posicion que seleccionaste del combo de nombre de proveedores
me funciona excelente y lo uso muchisimo.
probalo primero en un textbox normal y despues pasalo a la base.
Saludos
Leandro
Me sale uso invalido de la propiedad Combo1. ¿List?
Pero como lo estas asignando ¿?
Pásame solamente ese pedazo de código
Private Sub Form_Load()
Dim BD As ADODB.Connection
Dim rs As ADODB.Recordset
Set BD = New ADODB.Connection
Set rs = New ADODB.Recordset
BD.Open "Provider= SQLOLEDB; Initial Catalog= BETTELING;Data Source= (local); integrated security=SSPI; persist security info= true;"
rs.Open "SELECT * FROM Proveedor", BD, adOpenStatic, adLockOptimistic
With rs
Do Until .EOF
Combo4.AddItem .Fields(1)
Combo1.AddItem .Fields(1)
Combo1.List (Combo4.ListIndex)
.MoveNext
Loop
End With
El error me vota ahí en esa parte de negrita
Hola pero no lo estas asignando a nada, ni a una variable, ni a un text a nada.
Ahí lo que veo que haces es llenar los combos, borra la sentencia en negrita.
Una vez que tienes llenado los combos vas a usar esa opción pero lo tienes que programar en el evento click del combo o en algún evento que uses de un comando.
Amigo lo puse en el evento click y sigue el error
Private Sub Combo4_Click()
Combo1.List (Combo4.ListIndex)
End Sub
Me vota lo siguiente
Error de compilación: Uso no válido de propiedad
y lo enmarca en el .List
Gracias de antemano amigo espero poder solucionarlo =(
Hola
Estas interpretando mal el concepto del combobox.
textbox = Combo1.List (Combo4.ListIndex)
label = Combo1.List (Combo4.ListIndex)
Combo1.List (Combo4.ListIndex), esta es la parte del codigo para obtener el codigo pero solo no funciona, lo tenes que asignar a una variable, campo de sql etc.
Saludos
Ya amigo entendí, pero ahora esa cadena a donde pongo, por que la puse en el evento click del combo nombre proveedor y nada en el form_load y nada, ¿de ahí otra pregunta los dos combos se tienen que cargar en nombre proveedor o uno en nombre y el otro en el código? Espero que m soluciones esta ultima pregunta disculpas!
Hola
Arranquemos devuelta porque no estas entendiendo la lógica de como funciona y vas a perder la idea de usar los combo como vectores paralelos.
Te lo voy a hacer el código vos trata de adaptarlo a tu sistema
tienes 2 combos uno para nombres de proveedor, vamos a llamarlo cmbnombreprov y el otro para el código de proveedor lo llamamos cmbidprov
vamos a cargar los combos
BD.Open "Provider= SQLOLEDB; Initial Catalog= BETTELING;Data Source= (local); integrated security=SSPI; persist security info= true;"
rs.Open "SELECT idprov, nombre_prov FROM Proveedor", BD, adOpenStatic, adLockOptimistic
consejo el select * no se utiliza, se tiene que detallar los campos.
Do Until .EOF
cmbidprov.AddItem rs!idprov
cmbnombreprov.AddItem rs!nombre_prov
.MoveNext
Loop
ahí tenemos cargado los combos
Ahora yo quiero que al elegir el nombre de un proveedor me muestre el id proveedor en un textbox
Private Sub cmbnombre_prov_Click()
text1.text = Cmbidprov.List (Cmbnombre_prov.ListIndex)
End Sub
Reemplaza los nombres por lo de tu sistema y avisame cualquier duda.
Saludos
Leandro
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Visual Basic o hacer tu propia pregunta: