Autor Tema: ListBox y Image en Botton  (Leído 3973 veces)

0 Usuarios y 1 Visitante están viendo este tema.

FreddyJ

  • Kilobyte
  • **
  • Mensajes: 51
  • Reputación: +0/-2
    • Ver Perfil
ListBox y Image en Botton
« en: Octubre 11, 2009, 06:00:43 pm »
Hola. Tengo un problema con un ListBox

Tengo cargado en una tabla llamada 'tarifas' los siguientes campos.

reg_cod= Codigo autonumerico
reg_des= Nombre del registro. Ejemplo= "SIMPLE"
reg_hor= El valor de la hora. Ejemplo= 2000
reg_min= El valor por minutos de esa hora ingresada. Ejemplo= 3.333336

En el listbox cargo solo la descripción, Si hay 4 me mostrara 4. Pero quiero que cuando haga clic sobre alguna descripción me cargue en dos textos el valor de la hora y el valor de los minutos de esa descripción.

la manera en que cargo la descripcion en el list es la siguiente
Private Sub CargarListBox()
Dim rs As New ADODB.Recordset
    If rs.State = 1 Then rs.Close
        rs.Open "SELECT * FROM tarifas", nc, adOpenDynamic, adLockOptimistic
        rs.MoveFirst
            Do While rs.EOF = False
                lt.AddItem rs.Fields(1)
                rs.MoveNext
            Loop
End Sub

Espero me ayuden. Lo otro  es que tengo un manifest y quiero colocarle una imagen a un boton, entonces cuando en la propiedad style le coloco grafico el manifest no hace efecto. Quisiera algo para solucionar esto, que se vea bien el boton estilo xp y que se vea el icono.  ;)

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:ListBox y Image en Botton
« Respuesta #1 en: Octubre 12, 2009, 12:57:47 am »
hola mira yo lo haria asi

Código: [Seleccionar]
Dim rs As New ADODB.Recordset 'declaralo en el general

Private Sub CargarListBox()
    If rs.State = 1 Then rs.Close
        rs.Open "SELECT * FROM tarifas", nc, adOpenDynamic, adLockOptimistic

        List1.Clear
       
        For i = 1 To rs.RecordCount
            rs.AbsolutePosition = i
            List1.AddItem rs.Fields(1)
        Next
    End If
End Sub

Private Sub List1_Click()
    rs.AbsolutePosition = List1.ListIndex + 1
    Text1 = rs.Fields(2)
    Text2 = rs.Fields(3)
End Sub
y para la segunda pregunta mira este modulo para aplicar iconos a los botones y mantener los temas de windows

http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/217-modulo-de-clase-cimage-button.htm

saludos.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:ListBox y Image en Botton
« Respuesta #2 en: Octubre 12, 2009, 03:05:41 am »
Hola, para el tema de la carga del listbox esta bien, pero yo lo cambiaria igualmente en algunas cosas. primero no declararia con As New, he visto que siempre dicen que no se debe hacer asi en visual basic 6 y bueno.

Código: [Seleccionar]
Dim rsCargaLista As ADODB.Recordset

Private Sub CargarListBox()
    rsCargaLista.Open "SELECT * FROM tarifas", nc, adOpenDynamic, adLockOptimistic
    List1.Clear
   
    Do Until rsCargaLista.EOF
        List1.AddItem rsCargaLista("reg_des")
    Loop
   
    rsCargaLista.Close
End Sub

eso es para cargar la descripción.es mejor asi con un Do que con For.esta bien el de Leandro deja el reocrdset abierto para despues al hacer click en el listbox carga los campos correspondientes.

otra forma pero tambien lo podes hacer cargando en la propiedad ItemData del mismo el ID autonumerico del registro.

te creas una funcion a la que le pases como parametro el ID del registro(que lo sacas del que esta actualmente seleccionado haciendo List1.ItemData(List1.Listindex) y dentro de esa funcion que haga un...

Código: [Seleccionar]
vSQL = "SELECT * Tabla WHERE ID=" & List1.ItemData(List1.Listindex)
y despues ya sabes como cargar en los textbox los datos...

igualmente todo esto se simplifica si mostras una grilla, que para eso estan...

saludos.

FreddyJ

  • Kilobyte
  • **
  • Mensajes: 51
  • Reputación: +0/-2
    • Ver Perfil
Re:ListBox y Image en Botton
« Respuesta #3 en: Octubre 12, 2009, 02:36:47 pm »
Hola. Lo que queria con el listbox no ha funcionado del todo bien. El modulo de leandro si esta bueno.. Gracias por la ayuda.  ;D