** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Posicionarse en item de un cuadro lista
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPosicionarse en item de un cuadro lista

 Responder Responder
Autor
Mensaje
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2230
Enlace directo a este mensaje Tema: Posicionarse en item de un cuadro lista
    Enviado: 07/Diciembre/2019 a las 18:59
A ver si consigo explicarme.
Mediante unos botones voy insertando registros en una tabla mediante consulta en SQL. Si es el mismo producto se va acumulado en el mismo registro. Una vez insertado un registro automaticamente se ne actualiza el cuadro de lista su cantidad y se muestra. Hasta hay todo bien.
Ahora lo que quiero en que esa lista se me marque en negro(selecionada) el ultimo registro(producto) que he metido. 
La unica forma de identificar ese registro en la lista es mediante su IDProducto.  Lo que no se es como mediante ese IDProducto decir en que fila esta posicionado y que se seleccine(marque en negro)

Por ejemplo si el IDproducto es el 10, como se en que fila esta ese producto en la lista.
Una vez tenga ese numero de la fila(numero de item) ir hasta ella ya sabria.

Saludos
Arriba
raipon Ver desplegable
Moderador
Moderador


Unido: 10/Diciembre/2004
Localización: Desconocida
Estado: Sin conexión
Puntos: 4023
Enlace directo a este mensaje Enviado: 07/Diciembre/2019 a las 19:21
Hola, si IDProducto es una de las columnas del ListBox (y si no, puedes agregarla oculta), recorre los elementos de la lista hasta encontrar el valor. Crea un bucle utilitzando:

- ListCount
- Column (nColumn As Long, [Row])

Saludos.

Ramon desde Terrassa.

Mi blog
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11242
Enlace directo a este mensaje Enviado: 07/Diciembre/2019 a las 19:56
Basta con que asignes a la lista el valor que buscas, siempre que la columna dependiente sea IDProducto:

Me.Lista = IdProducto
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2230
Enlace directo a este mensaje Enviado: 07/Diciembre/2019 a las 20:38
Publicado originalmente por Mihura Mihura escribió:

Basta con que asignes a la lista el valor que buscas, siempre que la columna dependiente sea IDProducto:

Me.Lista = IdProducto

Voy a empezar por la que parece mas "facil".
He puesto la columna dependiete la que tiene el IDProducto, en esta caso la 7 contando que empezamos a contar por la 0.

Y no me funciona....algo me estoy perdiendo.....
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2230
Enlace directo a este mensaje Enviado: 07/Diciembre/2019 a las 22:40
No acababa de entender bien lo de raipon, y buscando encontre justo lo que quiero y lo que me explicaba raipon, ahora si lo veo.

El varProducto lo saco de un recordset o un DLookup.....

Dim I As Integer
Me.Lista0.SetFocus
For I = 0 To Me.Lista0.ListCount
If Me.Lista0.Column(7, I) = varProducto Then
Me.Lista0.Selected(I) = True
Exit For
End If
Next I



https://www.lawebdelprogramador.com/foros/Access/271304-Buscar-un-dato-en-un-cuadro-de-lista.html

Muchas gracias. Se puede cerrar
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11242
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 10:05
Importante: 

"siempre que la columna dependiente sea IDProducto"

Es mucho más fácil así ... y eficiente.

De todas formas, ¿quieres cerrar el tema?


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2230
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 14:02
No cierres voy a probar este metodo de nuevo, no se que estaría haciendo mal, ya puse la columna dependiendo id producto y no funcionaba.....
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 5374
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 16:23
Publicado originalmente por rokoko rokoko escribió:


Voy a empezar por la que parece mas "facil".
He puesto la columna dependiete la que tiene el IDProducto, en esta caso la 7 contando que empezamos a contar por la 0.

Y no me funciona....algo me estoy perdiendo.....


Creo que la columna dependiete empieza por 1.
Un Saludo.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11242
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 16:29
Mounir,

La numeración de columnas de un Combo (o de un ListBox) empiezan siempre en cero.

La columna dependiente es la que va a tener el valor significativo y puede ser cualquiera de todas ellas.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 5374
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 16:51
Hola!

Muchas gracias por la aclaración.

En etse ejemplo de microsoft habla de que para refrirse a la columna (0) habrá que establecer elvalor de la columna depndiente en (1) y de ahí la confusión.

https://docs.microsoft.com/es-es/office/vba/api/access.combobox.boundcolumn#example
Un Saludo.
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2230
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 18:13
A ver...
La columna dependiente la tengo en la 7. Es la que tiene el IDPoducto. Para otras operaciones pillo el dato de la 7 y es el correcto.
Numero de columnas 8
Ancho: 1cm;4cm;1,515cm;1,515cm;1cm;1,515cm;2,51cm;0cm

La que tiene anchura 0cm en la 7 empezando de 0.

Hasta aqui esta todo correcto.

El codigo que me funciona es este

'**********
''Posicionarse en la lista de frmTPV del producto que acabamos de meter
'Dim A As Integer
'For A = 0 To Forms!frmTPV!Lista0.ListCount
'If Forms!frmTPV!Lista0.Column(7, A) = varProducto Then
'Forms!frmTPV!Lista0.Selected(A) = True
'Exit For
'End If
'Next A
'******************

Pero con el metodo de Mihura no hay forma, algo me pierdo...mira que estoy probbando diferente formas y no hago carrera, mas vale que era el facil  Ouch
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 11242
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 20:19
Acabo de probar con un cuadro de lista con 3 columnas ..., la tercera es la que esta declarada como dependiente:

me.lista = 4                           -> siendo 4 el valor del código que quiero que coja

y me la marca.

¡Ojo! ... que como decía Mounir (y detalla el enlace que ha puesto), mi listbox tiene tres columnas (0 - 1 - 2), pero la columna dependiente es la 3. Para que vamos a hacer algo fácil si podemos liarlo Ouch.

En tu caso es la columna 7 (la de ancho = 0) que es la columna dependiente 8.



Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 2230
Enlace directo a este mensaje Enviado: 08/Diciembre/2019 a las 22:14
Por fin!!!!!  Vaya lio con el orden de la dependiente y las Column,  por que no seguira Microsoft el mismo criterio para las dos cosas....

En resumen para la columna dependiente se empieza a contar de la columna 1
Para pillar el dato con Column se empieza de la columna 0

Muchas gracias.

Se puede cerrar


Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable