Dos campos en un ComboBox

24/03/2006 - 17:20 por Lucas | Informe spam
¿Es posible enlazar dos campos de un mismo registro a un ComboBox?

Me explico mejor, en una tabla tengo registradas unas "rutas de viaje" en
donde guardo el lugar de salida y el de destino.

Para enlazar un ComboBox siempre hacía:

Me.cbo.DataSource=miDataSet.Tables("Tabla")
Me.cbo.ValueMember=miDataSet.Tables("Tabla").Columns("idTabla").ToString
Me.cbo.DisplayMember=miDataSet.Tables("Tabla").Columns("nombreCampo").ToString

pero quiero hacer algo como:

Me.cboRuta.DataSource=miDataSet.Tables("Ruta")
Me.cboRuta.ValueMember=miDataSet.Tables("Ruta").Columns("idRuta").ToString
Me.cboRuta.DisplayMember=miDataSet.Tables("Ruta").Columns("lugarOrigen").ToString
& " - " & miDataSet.Tables("Ruta").Columns("lugarDestino").ToString

es decir, mostrar en el ComboBox el lugar de origen y de destino separados
por un guión.

Ejem:

lugarOrigen - lugarDestino

pero no funciona lo que he hecho, es por eso que va mi pregunta. ¿Es posible
lograr eso?. Si fuera posible, ¿cómo se hace?

Espero que alguien me pueda orientar.

Gracias por su tiempo.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
26/03/2006 - 09:55 | Informe spam
"Lucas" wrote in message
news:
¿Es posible enlazar dos campos de un mismo registro a un ComboBox?

Me explico mejor, en una tabla tengo registradas unas "rutas de viaje" en
donde guardo el lugar de salida y el de destino.

Para enlazar un ComboBox siempre hacía:

Me.cbo.DataSource=miDataSet.Tables("Tabla")
Me.cbo.ValueMember=miDataSet.Tables("Tabla").Columns("idTabla").ToString
Me.cbo.DisplayMember=miDataSet.Tables("Tabla").Columns("nombreCampo").ToString

pero quiero hacer algo como:

Me.cboRuta.DataSource=miDataSet.Tables("Ruta")
Me.cboRuta.ValueMember=miDataSet.Tables("Ruta").Columns("idRuta").ToString
Me.cboRuta.DisplayMember=miDataSet.Tables("Ruta").Columns("lugarOrigen").ToString
& " - " & miDataSet.Tables("Ruta").Columns("lugarDestino").ToString

es decir, mostrar en el ComboBox el lugar de origen y de destino separados
por un guión.

Ejem:

lugarOrigen - lugarDestino

pero no funciona lo que he hecho, es por eso que va mi pregunta. ¿Es
posible
lograr eso?. Si fuera posible, ¿cómo se hace?

Espero que alguien me pueda orientar.




Le puedes añadir al DataSet una columna calculada que concatene los dos
campos, y luego vincular el combo con esa columna. Algo parecido a esto:

Dim col as DataColumn = miDataSet.Tables("Ruta").Columns.Add("Doscampos",
String.GetType())
col.Expression = "lugarOrigen+' - '+lugarDestino"
...
Me.cboRuta.DisplayMember=miDataSet.Tables("Ruta").Columns("Doscampos").ToString()
Respuesta Responder a este mensaje
#2 Alberto Poblacion
26/03/2006 - 10:22 | Informe spam
"Alberto Poblacion" wrote
in message news:%
Me.cboRuta.DisplayMember=miDataSet.Tables("Ruta").Columns("Doscampos").ToString()



Err... perdón, esto me pasa por copiar y pegar ciegamente. Obviamente,
quería decir
Me.cboRuta.DisplayMember=""Doscampos"
Respuesta Responder a este mensaje
#3 El KIKIN
27/03/2006 - 01:06 | Informe spam
Amigo una sugerencia en tu dataadapter por que no lo cargas con la cobinacion
de los dos campos osea algo asi

SELECT idruta, lugardeorigen + ' - ' + lugardedestino AS CampoComb FROM
tutabla

esta sertia la instruccion pa tu dataadapter

y ya ps
luego harias


Me.cbo.DataSource=miDataSet.Tables("Tabla")
Me.cbo.ValueMember=miDataSet.Tables("Tabla").Columns("idruta").ToString
Me.cbo.DisplayMember=miDataSet.Tables("Tabla").Columns("CampoComb").ToString

esto se me ocurre la verdad no lo probe ya q no dispongo de VB.NET ahora
peor debe funcionarte.
Espeor haberte ayudado
si es ais hasmelo sabes


Respuesta Responder a este mensaje
#4 Lucas
27/03/2006 - 18:28 | Informe spam
Gracias, me has ayudado mucho. He reducido el número de líneas de código.

Todo me ha funcionado bien, excepto la parte de "String.GetType()", en:

Dim col as DataColumn =
miDataSet.Tables("Ruta").Columns.Add("Doscampos",String.GetType())

creo que eso eso es para JScript, pero lo corregí con "GetType(String).

Por lo demás, todo está bien.

Gracias por tu tiempo.
Respuesta Responder a este mensaje
#5 Lucas
27/03/2006 - 18:33 | Informe spam
Te agradezco por la ayuda y tu tiempo, al parecer debería funcionar, no lo he
probado porque ya había avanzado el código, y la solución de Alberto
Poblacion se adapta más a lo que ya había hecho.

De todas maneras, muchas gracias por tu tiempo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida