Foros del Web » Soporte técnico » Ofimática »

Almacenar varios valores de un cuadro de lista en access

Estas en el tema de Almacenar varios valores de un cuadro de lista en access en el foro de Ofimática en Foros del Web. Hola, Tengo un formulario en access donde hay un cuadro de lista con la propiedad de muliselección establecida, para poder marcar más de un valor. ...
  #1 (permalink)  
Antiguo 11/12/2008, 05:59
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Almacenar varios valores de un cuadro de lista en access

Hola,
Tengo un formulario en access donde hay un cuadro de lista con la propiedad de muliselección establecida, para poder marcar más de un valor.
Pues bien, como puedo hacer para que los valores (más de uno) que yo marque en cada registro que vaya viendo en mi formulario se almacenen en un campo de esos registros.

Se puede hacer?

Un saludo a todos y muchas gracias.
  #2 (permalink)  
Antiguo 15/12/2008, 03:25
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

No se si te he entendido, pero puedes recorrer la lista e ir concatenando lo seleccionado en el control que tendra como origen de control ese campo, es algo asi??

un saludo
  #3 (permalink)  
Antiguo 15/12/2008, 03:46
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Hola,
Gracias por la respuesta,

Con un procedimiento en vba entiendo?

Gracias
  #4 (permalink)  
Antiguo 15/12/2008, 05:39
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

Efectivamnete, mira, con esto recorres la coleccion de elementos seleccionados de una lista, y se va concatenando en una variable, solo tendrias que asiganr el contenido de la variable al control:

Dim item As Variant
Dim strTemp As String

' recorremos la colección ItemsSelected
' y obtenemos todos los elementos seleccionados
For Each item In Me.Lista.ItemsSelected
strTemp = strTemp & Me.Lista.ItemData(item) & ","
Next
me.NombreControl= strTemp

un saludo
  #5 (permalink)  
Antiguo 15/12/2008, 06:13
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Hola,
Muchas gracias,
Estoy en ello, pero hasta ahora la variable strTemp no toma valor, item sí, toma el/los valores que le corresponden, pero srrTemp no.

Un saludo.
  #6 (permalink)  
Antiguo 15/12/2008, 06:17
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

Si quieres, para facilotar el encontrar el posible error, pon msgbox, algo asi:

For Each item In Me.Lista.ItemsSelected
msgbox Me.Lista.ItemData(item)
strTemp = strTemp & Me.Lista.ItemData(item) & ","
msgbox strTemp
Next
me.NombreControl= strTemp

Un saludo
  #7 (permalink)  
Antiguo 15/12/2008, 06:23
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Gracias,
He metido un debug.print y veo que item toma valores, pero strTemp solo toma las comas

Un saludo.
  #8 (permalink)  
Antiguo 15/12/2008, 06:32
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

Y has comprobado que Me.Lista.ItemData(item) tome valores??

un saludo
  #9 (permalink)  
Antiguo 15/12/2008, 06:39
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Creo que sí, porque le meto ese debug.print justo a continuación, dentro del bucle para ir controlando que cada iteración me da valor, y lo imprime.

Gracias
  #10 (permalink)  
Antiguo 15/12/2008, 06:44
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

Puedes pegar exactamente el codigo que estas utilizando??

Un saludo
  #11 (permalink)  
Antiguo 15/12/2008, 06:57
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Ahí va

Código:
Private Sub Nombres_LostFocus()
    Dim item As Variant
    Dim strTemp As String

    ' recorremos la colección ItemsSelected
    ' y obtenemos todos los elementos seleccionados
    strTemp = ""
    For Each item In Me.Nombres.ItemsSelected
        strTemp = strTemp & Str(Me.Nombres.ItemData(item)) & ","
        Debug.Print strTemp
    Next
        'Debug.Print strTemp
    Me.Nombres_marcados = strTemp
End Sub
Aunque va el nombre de procedimiento de evento, no es relevante.

Gracias otra vez
  #12 (permalink)  
Antiguo 15/12/2008, 07:02
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

Para que haces esa conversion a string??? prueba esto:

Private Sub Nombres_LostFocus()
Dim item As Variant
Dim strTemp As String

' recorremos la colección ItemsSelected
' y obtenemos todos los elementos seleccionados
strTemp = ""
For Each item In Me.Nombres.ItemsSelected
Debug.Print Me.Nombres.ItemData(item)
strTemp = strTemp & Me.Nombres.ItemData(item) & ","
Debug.Print strTemp
Next
'Debug.Print strTemp
Me.Nombres_marcados = strTemp
End Sub

Un saludo
  #13 (permalink)  
Antiguo 15/12/2008, 07:20
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

La conversión la hice ya al final, después de ver que no me funcionaba, por si acaso no tomaba valor por ser long,

Pero sigue igual, con tu debug sale que toma valor nulo.
  #14 (permalink)  
Antiguo 15/12/2008, 07:25
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

La lista se llama nombres???

Tiene seleccionado alguna linea??

Yo estoy probando todo y me funciona perfectamente. No te da ningun error??

Un saludo
  #15 (permalink)  
Antiguo 15/12/2008, 07:25
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Muchas gracias, ya me funciona!!

El cuadro de lista lo tenía con origen en un campo de una tabla. En la tabla también lo tenía como cuadro de lista.
En cuanto le he quitado el origen y lo he dejado como independiente, ha funcionado.

Muchas gracias por todo, que sea independiente no me arregla el problema del todo, pues ahora tengo que hacer otro procedimiento que lea el contenido del textBox a la entrada de cada registro y marque en el cuadro de lista los elementos, ya que solo con marcarlos no los almacena.

Pero eso ya es más fácil.

Muchas gracias otra vez.
  #16 (permalink)  
Antiguo 15/12/2008, 08:02
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Almacenar varios valores de un cuadro de lista en access

Estupendo, mira este enlace:

http://accessvbafaq.mvps.org/item.asp?pagina=55

Tienes varias utilidades y ejemplos para trabajar con listas, aparte de todo lo que Juan Afan (mvp) tiene en su web

un saludo
  #17 (permalink)  
Antiguo 16/12/2008, 03:22
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Almacenar varios valores de un cuadro de lista en access

Muchas gracias Taribo007,

Le estuve echando un vistazo ayer a la noche y creo que me será muy util

Gracias otra vez.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:23.