Visual Basic - Un listbox con problemas

Life is soft - evento anual de software empresarial
 
Vista:

Un listbox con problemas

Publicado por Jon (12 intervenciones) el 04/05/2001 14:05:58
Hola:

Quiero mostrar en un listbox los resultados de una búsqueda. Mi problema es que quiero alinear los campos para que queden organizados como si fueran columnas. ¿Me puede alguien dar alguna idea? He probado con la propiedad columns, pero ya veo que sirve para otra cosa, y que rellena en vertical.

Gracias, un saludo.

Jon
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Un listbox con problemas

Publicado por Fernando (11 intervenciones) el 04/05/2001 15:27:01
Lo que creo que quieres es:
rem primero referencia los componentes dao,ado,etc
rem cambia los comandos segun tu necesida pero rem esto seria lo basico en el caso de dao

dim db as database
dim rs as recordset
set db=opendatabase("c:\basededatos.mdb")
sql="select campo1, campo2 from tabla order by campo"
set rs=db.openrecordser(sql)
rs.movefirst
list1.clear
do until rs.eof
list1.additem campo1 & " " & campo2
rs.movenext
loop

rem ojo hay que realizar un recorrido del recordset y asignar campo * campo al listbox

ojala te sirva
Cordial saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alinear tipo columnas listbox

Publicado por BENJO (167 intervenciones) el 04/05/2001 18:02:22
Lo de Fernando está bastante bien, lo que sucede es que si los datos son grandes en algunos registros, quedarían desalineados con los demás.

La Plata --> Calle 12 y 34
Esteban Echeverría --> Calle 25 de Mayo

Debés saber primero cual es la el registro más largo

Bucle Do While te ayudaría
Data1.Recordset.Movefirst
b=1
Do While Not Data1.Recordset.EOF
'tomo el largo de los registros en una variable a
a= len(Data1.Recordset!Campo1)
If a >= b 'si el campo es mayor a b
b=a 'b toma el valor más largo encontrado
Endif

Data1.Recordset.Movenext

loop

'Ahora b tiene el valor más alto encontrado
b=b+2 'dejo una separación de dos espacios

'hago un bucle otra vez para asignar los datos al List
Data1.Recordset.Movefirst
Do While not Data1.Recordset.EOF
list1.additem Data1.Recordset!Campo1 & String(b-len(Data1.Recordset!Campo1)," ") & Data1.Recordset!Campo2
' Asignás primero el valor del registro y después al valor mayor encontrado anteriormente como espacios en blanco con String, le descontás el largo del registro actual, así te va a dar la separación justa que necesitás antes de asignar el próximo campo

Data1.Recordset.MoveNext
loop

Resultado:

La Plata ------------> Calle 12 y 34
Esteban Echeverría --> Calle 25 de Mayo

Ok.
Espero te sirva
Cualquier cosa mandame un email
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar