Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: FreddyJ 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. ;)
-
hola mira yo lo haria asi
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.
-
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.
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...
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.
-
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