Visual Basic - ayuda con un combo y una BD

Life is soft - evento anual de software empresarial
 
Vista:

ayuda con un combo y una BD

Publicado por budman (4 intervenciones) el 01/09/2003 13:24:21
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 ombre 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 my lenta si hay muchos datos. ¿De que otra forma podría hacerlo? Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:ayuda con un combo y una BD

Publicado por Yamil Bracho (226 intervenciones) el 01/09/2003 23:32:30
Si el codigo es numerico puedes usar la propiedad ItemData para almacenarlo. El codigo te quedaria como :

While Not rst1.EOF
Combo1.AddItem (rst1.Fields("lname") & ", " & rst1.Fields("fname"))
Combo1.ItemData( Combo1.NewIndex ) = rst1.Fields("Codigo")
rst1.MoveNext
Wend

Para buscar el codigo lo que haces es Combo1.ItemData( Combo1.ListIndex)

Saludos

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con un combo y una BD

Publicado por budman (4 intervenciones) el 03/09/2003 09:37:04
Hola Yamil. Tu consejo me sirve para la búsqueda de una de las tablas, pero en la otra el código es alfanumérico. ¿Hay alguna otra posibilidad? Un saludo y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar