Visual Basic - Combo con mas de un campo

Life is soft - evento anual de software empresarial
 
Vista:

Combo con mas de un campo

Publicado por Flavia (30 intervenciones) el 18/05/2007 23:19:03
Hola,

Mi pregunta es si puedo recuperar los campos que están dentro de un combo conformado por tres campos de la misma tabla, como campos individuales y asignarlos a una variable?

Armo el combo de la siguiente manera:

ocmd.CommandText = "select apell_cli, nom_cli, nro_doc from Clientes"
Set ors = ocmd.Execute
Do While Not ors.EOF
cboApellido.AddItem (ors.Fields("apell_cli").Value & ", " & ors.Fields("nom_cli").Value
& ", " & ors.Fields("nro_doc").Value)
ors.MoveNext
Loop

Esto lo muestra bien. Ahora bien, cuando elijo uno de los registros que me muestra quiero asignar a tres variables diferentes el valor de cada campo del registro seleccionado:

apellido= ¿?
nombre = ¿?
dni = ¿?

Cómo le digo esto??? porque con un cboApellido.text me muestra los tres datos, no los diferencia, probé con SelText y tampoco me deja. Es un combobox.

Gracias!!!!!!!!
Flavia
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

RE:Combo con mas de un campo

Publicado por cmgcharli (128 intervenciones) el 19/05/2007 09:57:03
Option Explicit

Public VarNombre as String
Public VarApellidos as String
Public VarNro as String

Defino la variables en un modulo como publicas puesto que me imagino que luego haras algo con su contenido cuando las hayas cargado.

Sub CargaVariables

Dim VarPosicion as Long

VarNombre =""
VarApellidos=""
VarNro=""

........Nota: A la vista de lo escrito por ti se ve que utilizas como caracter separador al juntar los campos en el Comobo la "," pues lo que tenemos que hacer es buscar estas comas que son los limites o separadores de los contenidos de tus campos y para ello utilizamos la funcion Instr() que devuelve un valor tipo Long cuando encuentra en una cadena o texto otra que buscamos, y si no la encuentra devuelve 0.

VarPosicion=1

Do Until Instr(VarPosicion,cboApellido.Text,",")=0

.....Nota: Si la funcion de arriba que indica que empezando a buscar en la posicion indicada por la variable VarPosicion, no devuelve 0 es que ha encontrado el caracter a buscar "," como no sabemos si es la primera o la segunda, para determinar en que coma estamos simplemente tendremos que preguntar si la primera variable VarNombre es = "" o no

If VarNombre ="" then

... VarNombre = Mid(cboApellido.Text, VarPosicion, Inst(VarPosicion,cboApelli-do.Text,",")-1)

else

....VarApellidos=Mid(cboApellido.Text, VarPosicion, Inst(VarPosicion,cboApelli-do.Text,",")-1)

end if

....VarPosicion=Instr(VarPosicion,cboApellido.Text,",")+1

Loop

.... Nota: cuando salga de ejecutar la Instruccion Do.......Loop es porque el valor de Instr(VarPosicion,cboApellido.Text,",")=0 y no hay mas "," ahora nos falta cargar la variable VarNro, pero ya tenemos en VarPosicion en que posicion debe de empezar este ultimo dato y su longitud debe de ser hasta el final

VarNro =Mid(cboApellido.Text, VarPosicion)

End Sub
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:Combo con mas de un campo

Publicado por Flavia (30 intervenciones) el 21/05/2007 14:22:04
Gracias por tu ayuda!
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