Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dos campos en un ComboBox

756 views
Skip to first unread message

Lucas

unread,
Mar 24, 2006, 11:20:01 AM3/24/06
to
¿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.

Alberto Poblacion

unread,
Mar 26, 2006, 2:55:31 AM3/26/06
to
"Lucas" <Lu...@discussions.microsoft.com> wrote in message
news:4E08C3B5-3FE4-4887...@microsoft.com...


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

Alberto Poblacion

unread,
Mar 26, 2006, 3:22:55 AM3/26/06
to
"Alberto Poblacion" <earthling-quitae...@poblacion.org> wrote
in message news:%23x5ZqqK...@TK2MSFTNGP12.phx.gbl...

> 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"

KIKIN@discussions.microsoft.com El KIKIN

unread,
Mar 26, 2006, 6:06:55 PM3/26/06
to
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

jos...@gmail.com

amadojimenez

unread,
Dec 7, 2009, 11:29:02 PM12/7/09
to

tendrias que hacerlo desde la consulta y rellenar de espacios y ademas usar
en el combo como fuente el tipo de letra courier.
para access debe ser muy parecido. La solución que te propongo es para
visual basic net y sql server.
Aqui puedes ver el código
http://prgvisualnet.blogspot.com
saludos
0 new messages