List en VB 6

Hola.
Necesito hacer lo siguiente, ojala me puedas ayudar:
Debo incluir 2 list en un formulario... El primero de ellos debe cargar una lista de datos almacenados en una tabla... La idea mía es que desde ese list, se vayan seleccionando elementos y que vayan pasando al segundo list y desaparezcan del primero (para no duplicar la selección) y que se puedan quitar elementos del segundo también... Una vez hecho esto, lo que esta en el segundo list debe ser guardado en otra tabla...
Esa es la primera parte, creo que la segunda quizás me cueste menos sabiendo lo anterior, y es que cuando se vuelva a cargar el formulario, este muestre lo que ya ha sido seleccionado y lo que todavía no ha sido, y que puedan quitarse elementos, para nuevamente guardar o modificar la tabla...
Es un poco enredado, pero lo he visto en alguna parte, y no lo puedo encontrar ahora..
Gracias!
6

6 respuestas

Respuesta
1
Enrededado sin ninguna duda.
Bueno podes usar un truco que es la grilla checkbox, en vez de borrarlo podes hacerle un click y en la base haces un campo booleano que sea true si esta clicleado, en este caso no tienes que borrar.
O sino después llamas solo a los que están en false.
Vayamos a lo tuyo.
Primero del recordset cargar el list1 con
list1. Additem rs! Nombrecampo
Después cuando seleccionas uno nombre de la lista uno pones
list2. Additem list1. List(list1. Listindex)
List1. Removeitem (list1. Listindex)
y despues grabas la list2 recorriendala con un for
Cualquier duda me avisas saludos
Leandro
Respuesta
1
Primero que nada voy a asumir que ya sabes conectar una base de datos y sabes como leer los registros con un RecordSet (o el objeto que quieras).
Bueno para lograr este efecto el código es el siguiente:
'Codigo
Private Sub CmdAgregar_Click()
If List1.ListCount = 0 Then
MsgBox "No existen items para mover"
Exit Sub
End If
List2.AddItem List1.List(List1.ListIndex)
List1.RemoveItem List1.ListIndex
End Sub
Private Sub CmdEliminar_Click()
If List2.ListCount = 0 Then
MsgBox "No existen items para mover"
Exit Sub
End If
List1.AddItem List2.List(List2.ListIndex)
List2.RemoveItem List2.ListIndex
End Sub
Private Sub Form_Load()
'Esto vendria siendo tu carga de datos de la base de datos.
'Estoy asumiendo que sabes conectar una base de datos y sabes rescatar la informacion de un RecordSet
List1. AddItem "Seleccion1"
List1. AddItem "Seleccion2"
List1. AddItem "Seleccion3"
List1. AddItem "Seleccion4"
List1. AddItem "Seleccion5"
List1. AddItem "Seleccion6"
List1. AddItem "Seleccion7"
End Sub
'Fin codigo
Este ejemplo asume que tienes un formulario de nombre Form1, ListBox y 2 CommandButton, con los siguientes nombres :
Formulario // Form1
Primer ListBox // List1
Segundo ListBox // List2
Primer Boton // CmdAgregar
Segundo Boton // CmdEliminar
Con los objetos en el formulario y con los nombres correspondientes, copia el código en tu formulario y pruébalo.
La idea de este ejemplo es que con el botón CmdAgregar podrás mover el item seleccionado desde List1 al List2 y con el botón CmdEliminar podrás mover desde el Item seleccionado desde el List2 al List1.
Espero que te sirva de ayuda y si no sabes como conectar una base de datos y mostrarla en el list solo avisame y te ayudo con eso ...
Hasta pronto.
PD: Recuerda Valorar y Finalizar tus preguntas cuando te encuentres satisfecho con las respuestas.
Respuesta
1
Respuesta
1
Lo que me comentas es un poco amplio como para mandarte un ejemplo. ¿Cuál es el punto exactamente en el que tienes dudas?
Respuesta
1
Disculpa por la tardanza, enviame tu mail para enviarte un ejemplo..
¿Ya te llego? ¿? ¿
No estoy seguro que me llego, finalmente solucione mi dilema utilizando otra herramienta, gracias de todas formas, y si puedes enviame el ejemplo de igual... siempre es útil...
Respuesta
1
Para ayudarte debo saber algunas cosas
De donde estas cargando la lista osea:
-De uno o varios campos
-De una o varias tablas
De los que se seleccionan se guardan
- En la tabla o tablas
- En varios canpos o solo uno
- O solo se guarda para la aplicación, si es así, con la instrucción getsetting()y savesetting se hace esto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas