de combo a textbox

31/05/2005 - 12:23 por Sonia | Informe spam
una pregunta: si en un combo cargo 2 campos de una tabla (nombre y apellido)
de la siguiente manera:

mysql = "Select NOMBRX &' '& APELSX FROM TELEMARKETING WHERE KLVCOL='" &
clave1 & "';"

Llenar_combo(mysql, CadenaConexion, Combocontacto)

como puedo hacer para q al seleccionar uno

aparezca el nombre en un textbox y el apellido en otro?

gracias!!!

Preguntas similare

Leer las respuestas

#1 Jorge Serrano [MVP VB]
31/05/2005 - 15:12 | Informe spam
Hola Sonia,

lo normal es que el ComboBox tenga un formato "Nombre" "Apellido" y que
estén separados por un espacio en blanco, por lo que para saber o dividir esa
parte en las correctas, deberías buscar el espacio en blanco y poner la parte
de la izquierda como Nombre y la parte de la derecha como Apellido.

De todos los modos, puede que te encuentres con un formato "Nombre" y
"Apellido" y que el Apellido tenga espacios en blanco, como por ejemplo "De
la Hoya". En este caso, la complejidad aumenta, por lo que una solución
factible sería la siguiente:

Public Structure MiEstructura
Public Descripcion As String
Public Clave1 As String
Public Clave2 As String
Public Overrides Function ToString() As String
Return Descripcion
End Function
End Structure

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim Es As MiEstructura
Dim I As Byte
For I = 1 To 7
Es.Clave1 = "Espacio" & I
Es.Clave2 = I
Es.Descripcion = "Espacio" & I & " " & I
ComboBox1.Items.Add(Es)
Next
ComboBox1.SelectedIndex = 0
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged
'Label1.Text = ComboBox1.SelectedText
Label1.Text = DirectCast(ComboBox1.SelectedItem,
MiEstructura).Clave1.ToString()
Label2.Text = DirectCast(ComboBox1.SelectedItem,
MiEstructura).Clave2.ToString()
End Sub


Espero que este ejemplo te ayude.

Un saludo,

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Sonia" wrote:

una pregunta: si en un combo cargo 2 campos de una tabla (nombre y apellido)
de la siguiente manera:

mysql = "Select NOMBRX &' '& APELSX FROM TELEMARKETING WHERE KLVCOL='" &
clave1 & "';"

Llenar_combo(mysql, CadenaConexion, Combocontacto)

como puedo hacer para q al seleccionar uno

aparezca el nombre en un textbox y el apellido en otro?

gracias!!!




Respuesta Responder a este mensaje
#2 Tristan
31/05/2005 - 21:13 | Informe spam
Sonia, tienes muchas formas de hacerlo. Una de ellas es esta:

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim fila As DataRowView = DirectCast(ComboBox1.SelectedItem,
DataRowView)
TextBox1.Text = fila("nombrX")
TextBox2.Text = fila("apelsX")
End Sub

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 Sonia
01/06/2005 - 09:29 | Informe spam
hola tristan
he seguido tus pasos y me sale este error:

'excepcion no controlada en un componente de la aplicacion.'
'la conversion especificada no es valida'
'
sabes a q puede ser debido??

gracias x tu ayuda!!



"Tristan" escribió en el mensaje
news:
Sonia, tienes muchas formas de hacerlo. Una de ellas es esta:

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim fila As DataRowView = DirectCast(ComboBox1.SelectedItem,
DataRowView)
TextBox1.Text = fila("nombrX")
TextBox2.Text = fila("apelsX")
End Sub

Juan Carlos Badiola
MVP - C#



Respuesta Responder a este mensaje
#4 Tristan
01/06/2005 - 16:30 | Informe spam
Todo depende de que es lo que hayas hecho para llenar el Combo.

Doy por hecho que has utilizado un datatable como datasource del Combo. Si
por el contrario has llenado manualmente el combo, utilizando un DataReader,
y añadiendo itema a item, entonces las cosas son diferentes.

¿Estás utilizando enlace a datos?

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#5 Sonia
02/06/2005 - 09:26 | Informe spam
lo relleno de esta manera (lo pongo en el load)



mysql = "Select NOMBRE &' '& APELLIDO FROM ADOPCION WHERE CODIGO='" & clave1
& "';"
Llenar_combo(mysql, CadenaConexion, combocontacto)

rellena(clave.Text)



donde la funcion llenar_comnbo la tengo declarada en un modulo y es esta:

'Relenar un combobox con un lector datareader

Public Sub Llenar_combo(ByVal mySelectQuery As String, _

ByVal myConnectionString As String, ByVal myControl As ComboBox)

Dim x As String = myControl.Name

Dim myReader As OleDbDataReader

Dim myConnection As New OleDbConnection(myConnectionString)

Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)

myControl.Items.Clear()

Try

myCommand.Connection.Open()

myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)

While myReader.Read()

myControl.Items.Add(myReader(0).ToString)

End While

myReader.Close()

myConnection.Close()

myConnection.Dispose()

Catch ee As Exception

MessageBox.Show(ee.ToString)

End Try

End Sub



y donde cadenaconexion la tengo declarada en otro modulo y es:

CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &
ArchivoDatos & ";Persist Security Info=False"

todos los combos los he rellenado asi. hay algun problema en hacerlo de esta
forma??



"Tristan" escribió en el mensaje
news:

Todo depende de que es lo que hayas hecho para llenar el Combo.

Doy por hecho que has utilizado un datatable como datasource del Combo. Si
por el contrario has llenado manualmente el combo, utilizando un


DataReader,
y añadiendo itema a item, entonces las cosas son diferentes.

¿Estás utilizando enlace a datos?

Juan Carlos Badiola
MVP - C#



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida