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.
 

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()

Preguntas similares