problema con combobox y BD

budman
03 de Septiembre del 2003
Hola. Estoy desarrollando un programilla y tengo un problema, para el que he encontrado solución pero no estoy satisfecho. Me gustaría alguna sugerencia por vuestra parte. Por cierto, no soy muy ducho con esto, para que no os pille por sorpresa. Bien, a ver si me explico.

Tengo una tabla en una BD, que relaciona unos nombres con unos códigos. Mi programa accede a esa tabla y muestra los nombres en un combobox:

con1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & path1 & ";"
con1.Open
rst1.Open "SELECT * FROM dbo_employee ORDER BY lname", con1, adOpenStatic, adLockOptimistic
rst1.MoveFirst
While Not rst1.EOF
Combo1.AddItem (rst1.Fields("lname") & ", " & rst1.Fields("fname"))
rst1.MoveNext
Wend
Combo1.SetFocus
Combo1.ListIndex = 0

Después de elegir un trabajador del combobox, el operador introducirá otros datos en textboxes. Por último, pulsará en un commandbutton para almacenar EN OTRA BD todos los datos. El problema es que quiero almacenar los códigos de la primara BD, no los nombres. Para hallar el código de un trabajador lo que hago es almacenar en una cadena el nombre que aparece en el combobox y hacer una búsqueda por la tabla que relaciona nombres y códigos hasta que se de la coincidencia. Luego obtengo el código.

El problema es que esta forma me parece poco eficaz y muy lenta si hay muchos datos. ¿De que otra forma podría hacerlo? Gracias.

ricardo
03 de Septiembre del 2003
yo tambien tuve ese problema ,
a ver si entiendes lo que te quiero decir, lo qu eyo hice fue usar un combo para los nombres y otro combo para los codigos, el de los codigos hago invisible, a la vez que cargo el combo de los nombres cargo el de los codigos, asi cada fila del combo nombre tiene una paralela en el de codigos.
cuando seleciones un nombre obtienes el listindex y con ese valor puedes sacar el codigo de ese nombre en el otro combo
por ejemplo

elegido=comboN.listindex
codDlegido=comboC.list(elegido)

asi ya tienes directamente el codigo

espero que me hayas entendido y que te sirva