Extraño comportamiento de las list box

Discute sobre las herramientas de la base de datos
Responder
zitux
Mensajes: 8
Registrado: Jue Jul 22, 2010 3:02 pm

Extraño comportamiento de las list box

Mensaje por zitux »

¡Hola a todos! soy nuevo y, para variar, con problemilla :P . Si alguien me puede echar una mano...

Estoy intentado migrar una base de datos de msaccess a base. Tengo un formulario de pedidos en el que tengo una list box que me despliega el listado de los apellidos de los posibles clientes y me permite guardar el número de ID en otro campo de la tabla en la que se basa el formulario. Hasta aquí perfecto.

El problema es que, cuando pincho en el desplegable y tecleo el comienzo del apellido para que se desplace el cursor hasta llegar al que me interesa; en el caso de apellidos compuestos, por ejemplo, "de la Fuente" cuando tecleo "de" me busca el "de". Pero, cuando tecleo el espacio y la "ele" del "la", la listbox pierde el norte y se va a los que empiezan por el apellido "la" . Además, el campo a mostrar en el desplegable está abajo del todo de los mostrados y tapado casi en su totalidad por una barra de desplazamiento horizontal que no sirve para nada, pero que no veo la forma de quitar.

Sorprendentemente, este comportamiento no ocurre con las combobox. Se desplaza uno por el listado sin problemas tecleando espacios etc. sin problemas. El problema es que no he sido capaz de hacer que esta combo box me muestre las entradas de un campo de texto con los apellidos y me almacene, no el nombre, sino el ID en otro campo.

La pregunta de la list box es: ¿ hay forma de quitar la barra de desplazamiento horizontal que aparece cuando se despliega y semitapa la selección? ¿Se podría solucionar lo de que continue la búsqueda sin ignorar los espacios?

O mejor, ¿se podría desplegar un campo en una combobox y almacenar otro en otro campo? Esto me lo resolvería todo.

Muchas gracias de antemano.
Zitux
Ubuntu linux 10.04 con openoffice 3.2.0
Cascabel
Mensajes: 283
Registrado: Mié Nov 11, 2009 10:53 am

Re: Extraño comportamiento de las list box

Mensaje por Cascabel »

Cierto. El listbox parece ser incapaz de buscar con espacios. Debe de ser un error.
Si es un listbox desplegable, no debería aparecer una barra horizontal, sino que se ampliaría el ancho al máximo de los datos.
En cualquier caso, deberías poder usar la barra vertical para bajar y dejar visible el registro.
Un combobox guarda exactamente lo que muestra, que siempre es texto. No puede guardar la ID porque su naturaleza le permite aceptar cualquier cadena de texto, incluso una que no esté en la lista. ¿Qué valor guardaría entonces?

Así las cosas, ¿qué puedes hacer? Pues, lo que se hace cuando seguir las normas no da resultado: trampas.
Voy a añadir un campo de texto al formulario para hacer búsquedas.
Cada vez que se pulse una tecla en él, una macro lee su contenido y posiciona el listbox en el primer elemento coincidente, si lo hay.

Subo un ejemplo.
Adjuntos
BuscaListbox.zip
(10.58 KiB) Descargado 254 veces
OOo 3.3.0: OOO330m20 (Build:9567) en WXP+SP3 y en Ubuntu 10.10
zitux
Mensajes: 8
Registrado: Jue Jul 22, 2010 3:02 pm

Re: Extraño comportamiento de las list box

Mensaje por zitux »

Muchas gracias por tu rapidísima respuesta, Cascabel.
He andado trasteando un poco con tu macro y, aunque funciona, no me resulta operativa. Tengo unos cuatro mil registros y tarda mucho en leerla, y eso metiendo en la list box sólo los apellidos. Lo interesante sería además concatenar Apellidos y nombres, porque hay algunos con los dos apellidos iguales.
Pena lo de la combo box. En access sí se puede y está chupado hacerlo.

Seguiré investigando, si no hay alguien que nos saque de dudas...

De cualquier manera la combo box imagino que necesariamente tendrá que leer el ID de algún sitio para poder seleccionar, en este caso, el apellido correcto.

Si es así, mi pregunta es: ¿no se podria capturar el id y, luego, con una macro almacenarlo en otro campo del formulario?
Ubuntu linux 10.04 con openoffice 3.2.0
zitux
Mensajes: 8
Registrado: Jue Jul 22, 2010 3:02 pm

Re: Extraño comportamiento de las list box

Mensaje por zitux »

Flipo con las list box...
Es que se traga los espacios y punto. Por tirar por la calle del medio le he pedido al desplegable que me muestre 30 apellidos para seleccionar rápido con el ratón, en plan chapuza hasta que encuentre mejor solución...

Pero resulta que, al ordenar, se traga los espacios por todo el morro y ordena, por ejemplo así:

De la Calle
Del Acebo
De la Fuente
..........
sigue la lista y luego...

Del Sol
De Lucas
De Lujan
Del Viejo
De Martin

Mezcla los "del y los de" pero, fijándose bien resulta que ordena bien sólo que ignora los espacios... ¿esto es un bug para reportar a los desarrolladores? Si es así ¿cómo se hace?

Gracias por vuestra paciencia.
Ubuntu linux 10.04 con openoffice 3.2.0
Cascabel
Mensajes: 283
Registrado: Mié Nov 11, 2009 10:53 am

Re: Extraño comportamiento de las list box

Mensaje por Cascabel »

El combobox de por sí no guarda otra información que las opciones a mostrar; nada de ID.

El ejemplo que adjunto usa una macro para encontrar la ID a partir del texto seleccionado en el combobox.
Para que funcione correctamente, debe ser un texto único para cada registro. Eso lo he solucionado incluyendo la ID al final del texto a mostrar.
Otra macro se ocupa de rellenar el combobox con el texto adecuado cada vez que el formulario cambia de registro.
Los listbox de nombre y apellidos los he puesto para visualizar los datos. Podrías dejarlos como sólo-lectura.
Espero que te funcione mejor que el anterior. Con tantos registros, puede que se retrase hasta el combobox.
Adjuntos
BuscaCombobox.zip
(11.29 KiB) Descargado 223 veces
OOo 3.3.0: OOO330m20 (Build:9567) en WXP+SP3 y en Ubuntu 10.10
zitux
Mensajes: 8
Registrado: Jue Jul 22, 2010 3:02 pm

Re: Extraño comportamiento de las list box

Mensaje por zitux »

Muchas gracias por tu tiempo y esfuerzo Cascabel. Lo he probado y, aunque funciona, y el método es muy ingenioso, en realidad no me es operativo para manejar la base que tengo con agilidad.
El método ideal para hacerlo es, por supuesto, una una list box que funcione bien... aunque me temo que esto será cosa de los desarrolladores. Creo que lo reportaré a ver si lo arreglan.
De nuevo, muchas gracias por tu ayuda.
Ubuntu linux 10.04 con openoffice 3.2.0
danielmorbelli
Mensajes: 116
Registrado: Vie May 21, 2010 1:53 pm

Re: Extraño comportamiento de las list box

Mensaje por danielmorbelli »

zitux escribió:Muchas gracias por tu tiempo y esfuerzo Cascabel. Lo he probado y, aunque funciona, y el método es muy ingenioso, en realidad no me es operativo para manejar la base que tengo con agilidad.
El método ideal para hacerlo es, por supuesto, una una list box que funcione bien... aunque me temo que esto será cosa de los desarrolladores. Creo que lo reportaré a ver si lo arreglan.
De nuevo, muchas gracias por tu ayuda.
Hola Zitux, queria saber si pudiste solucionar el problema de los espacios, yo me encuentro en la misma situacion que la tuya.
Migre una base de access con 9000 registros, y me encuentro con el mismo problema
Daniel
Openoffice 3.2 (Preferentemente Linux Ubuntu 10.04) también W XP SP3
Responder