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
Ir a la versión completa