Programación General > Visual Basic 6.0 e inferiores

 Listbox

(1/1)

Kiyuu:
Hola a TODOS. A ver si me echais un cable.

Lo que pido es muy sencillo. Tengo un list box que se carga de informacion de una base de datos acces con ADO correspodiente al Campo1 de esa base de datos.

Mi pregunta es bien sencilla. Quiero crear un TextBox al lado de esa List Box y que cuando se selecione un Item de la ListaBox , en el TextBox quede reflejado el Campo2 de la misma base de datos y de ese registro.

Un saludo.

Shiquilla:
Al item que agregues a la lista tienes que ponerle el ID que tienes en base de datos, esto se hace con esta linea:

Lista.ItemData(Lista.NewIndex) = IIf(Not IsNull(loRS!nCodigo), loRS!nCodigo, 0)

Luego, para saber en dónde ha clickado el usuario, sería recoger el código que ha seleccionado y hacer la SELECT correspondiente:

lidCodigo = Lista.ItemData(Lista.ListIndex)


Te paso un ejemplo


--- Código: Text ---Option ExplicitPrivate goConexion As ADODB.ConnectionPrivate Const gsCadenaConexion = "PROVIDER=SQLOLEDB;DATA SOURCE=(local);DATABASE=BaseDeDatos;UID=sa;PWD=" Private Sub Form_Load()    msCargarListaEnd Sub Public Property Get goBD() As Connection    Dim lsCadenaConexion As String        lsCadenaConexion = gsCadenaConexion    If goConexion Is Nothing Then        Set goConexion = New ADODB.Connection        goConexion.Open lsCadenaConexion    Else        If goConexion.State = 0 Then goConexion.Open lsCadenaConexion    End If    Set goBD = goConexion    End Property Private Sub msCargarLista()Dim loItem As ListBoxDim lsSQL As StringDim loRS As Recordset     Lista.Clear     lsSQL = "SELECT * FROM Empresas"    Set loRS = goBD.Execute(lsSQL)    While Not loRS.EOF        Lista.AddItem IIf(Not IsNull(loRS!sNombre), loRS!sNombre, "")        Lista.ItemData(Lista.NewIndex) = IIf(Not IsNull(loRS!nCodigo), loRS!nCodigo, 0)        loRS.MoveNext    Wend    loRS.Close    Set loRS = Nothing End Sub Private Sub Lista_Click()Dim lidCodigo As LongDim lsSQL As StringDim loRS As Recordset    Text1.Text = ""        If Lista.ListIndex <> -1 Then        lidCodigo = Lista.ItemData(Lista.ListIndex)                lsSQL = "SELECT * FROM Empresas WHERE nCodigo = " & lidCodigo        Set loRS = goBD.Execute(lsSQL)        If Not loRS.EOF Then            Text1.Text = IIf(Not IsNull(loRS!sDireccion), loRS!sDireccion, "")        End If        loRS.Close        Set loRS = Nothing            End If    End Sub 
Saludos,

Navegación

[0] Índice de Mensajes

Ir a la versión completa