Discussion:
Almacenar selección múltiple de un cuadro de lista en un campo
(demasiado antiguo para responder)
x***@gmail.com
2008-01-09 18:04:28 UTC
Permalink
Hola a todos. Soy novato en esto del access y tengo un problema en
access2003.

Tengo un listbox que visualiza los registros de un campo de una tabla.
Tengo que hacer selección mútiple en el listbox... he leído que se
puede almacenar todos los valores como cadena de texto separada con
comas... pero... no me queda nada claro. ¿cómo lo debo hacer?

Muchas gracias y saludos
Emilio
2008-01-09 18:24:37 UTC
Permalink
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!

tengo la impresión de que mezclas churras con merinas ;)

Un cuadro de lista se puede cargar mediante una serie de cadenas
concatenadas con comas (o puntos y comas según la configuración regional de
cada cual), pero la selección múltiple no tiene nada ver con eso, es una
propiedad mas que puedes ajustar entre las propiedades del cuadro de lista.

Saludos a ***@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.com/emilioque


<***@gmail.com> escribi� en el mensaje news:0f8c1d15-6daf-4cc5-9a5b-***@i72g2000hsd.googlegroups.com...
Hola a todos. Soy novato en esto del access y tengo un problema en
access2003.

Tengo un listbox que visualiza los registros de un campo de una tabla.
Tengo que hacer selección mútiple en el listbox... he leído que se
puede almacenar todos los valores como cadena de texto separada con
comas... pero... no me queda nada claro. ¿cómo lo debo hacer?

Muchas gracias y saludos
x***@gmail.com
2008-01-10 10:28:02 UTC
Permalink
Hola de nuevo,

Creo que no me he explicado bien. Tengo un listbox configurado con
selección múltiple; mi pregunta es: como puedo almacenar esa selección
múltiple en el campo?.

Gracias.
Emilio
2008-01-10 11:09:20 UTC
Permalink
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Pues si, cualquier parecido con la realidad ...

a ver tengo un botón (cmdGuardar), un cuadro de lista (lstPais) configurado
para selección multiple y un cuadro de texto (txtResultado), en el evento al
hacer click del botón he puesto el siguiente código

Private Sub cmdGuardar_Click()
Dim i As Integer, _
strCadena As String

For i = 0 To Me.lstPais.ListCount - 1
If Me.lstPais.Selected(i) Then
strCadena = strCadena & Me.lstPais.Column(1, i) & ","
End If
Next i
Me.txtResultado = Left(strCadena, Len(strCadena) - 1)
End Sub

que me devuelve en el cuadro de texto txtResultado los distintos paises
seleccionados concatenados con una coma, OjO, el cuadro de lista tiene dos
columnas, la primera es la clave y está oculta, por eso lo de column(1, i)

Saludos a ***@s
Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio


<***@gmail.com> escribi� en el mensaje news:c61b9667-adf1-4974-bb78-***@k2g2000hse.googlegroups.com...
Hola de nuevo,

Creo que no me he explicado bien. Tengo un listbox configurado con
selección múltiple; mi pregunta es: como puedo almacenar esa selección
múltiple en el campo?.

Gracias.
x***@gmail.com
2008-01-10 19:36:54 UTC
Permalink
Post by Emilio
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Pues si, cualquier parecido con la realidad ...
a ver tengo un botón (cmdGuardar), un cuadro de lista (lstPais) configurado
para selección multiple y un cuadro de texto (txtResultado), en el evento al
hacer click del botón he puesto el siguiente código
Private Sub cmdGuardar_Click()
Dim i As Integer, _
    strCadena As String
For i = 0 To Me.lstPais.ListCount - 1
   If Me.lstPais.Selected(i) Then
      strCadena = strCadena & Me.lstPais.Column(1, i) & ","
   End If
Next i
Me.txtResultado = Left(strCadena, Len(strCadena) - 1)
End Sub
que me devuelve en el cuadro de texto txtResultado los distintos paises
seleccionados concatenados con una coma, OjO, el cuadro de lista tiene dos
columnas, la primera es la clave y está oculta, por eso lo de column(1, i)
Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.comhttp://www.mvp-access.com/forohttp://www.mvp-access.com/emilio
Hola de nuevo,
Creo que no me he explicado bien. Tengo un listbox configurado con
selección múltiple; mi pregunta es: como puedo almacenar esa selección
múltiple en el campo?.
Gracias.
Me ha servido de mucha ayuda, gracias.

Saludos a todos
Emilio
2008-01-10 19:46:11 UTC
Permalink
:-))

Saludos a ***@s

Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio
Post by Emilio
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Pues si, cualquier parecido con la realidad ...
a ver tengo un botón (cmdGuardar), un cuadro de lista (lstPais) configurado
para selección multiple y un cuadro de texto (txtResultado), en el evento al
hacer click del botón he puesto el siguiente código
Private Sub cmdGuardar_Click()
Dim i As Integer, _
strCadena As String
For i = 0 To Me.lstPais.ListCount - 1
If Me.lstPais.Selected(i) Then
strCadena = strCadena & Me.lstPais.Column(1, i) & ","
End If
Next i
Me.txtResultado = Left(strCadena, Len(strCadena) - 1)
End Sub
que me devuelve en el cuadro de texto txtResultado los distintos paises
seleccionados concatenados con una coma, OjO, el cuadro de lista tiene dos
columnas, la primera es la clave y está oculta, por eso lo de column(1, i)
Emilio [MS-MVP Access 2006/8]
miliuco56 ALGARROBA
hotmail.comhttp://www.mvp-access.com/forohttp://www.mvp-access.com/emilio
Hola de nuevo,
Creo que no me he explicado bien. Tengo un listbox configurado con
selección múltiple; mi pregunta es: como puedo almacenar esa selección
múltiple en el campo?.
Gracias.
Me ha servido de mucha ayuda, gracias.

Saludos a todos
r***@gmail.com
2016-10-24 12:58:18 UTC
Permalink
Post by x***@gmail.com
Hola a todos. Soy novato en esto del access y tengo un problema en
access2003.
Tengo un listbox que visualiza los registros de un campo de una tabla.
Tengo que hacer selección mútiple en el listbox... he leído que se
puede almacenar todos los valores como cadena de texto separada con
comas... pero... no me queda nada claro. ¿cómo lo debo hacer?
Muchas gracias y saludos
Hola, hace tiempo de esta conversación, pero estoy aprovechando las respuestas y tengo un problema: cuando ya he capturado en el cuadro de texto la información del cuadro de lista, intento capturar el campo para el filtro de una consulta, y el sistema me da el error de que es demasiado complejo... pero sólo al seleccionar valores múltiples; si escojo un único resultado en el cuadro de lista, la consulta funciona... no sé qué hacer...
Francisco Prado
2016-10-27 16:38:36 UTC
Permalink
Post by r***@gmail.com
Post by x***@gmail.com
Hola a todos. Soy novato en esto del access y tengo un problema en
access2003.
Tengo un listbox que visualiza los registros de un campo de una tabla.
Tengo que hacer selección mútiple en el listbox... he leído que se
puede almacenar todos los valores como cadena de texto separada con
comas... pero... no me queda nada claro. ¿cómo lo debo hacer?
Muchas gracias y saludos
Hola, hace tiempo de esta conversación, pero estoy aprovechando las respuestas y tengo un problema: cuando ya he capturado en el cuadro de texto la información del cuadro de lista, intento capturar el campo para el filtro de una consulta, y el sistema me da el error de que es demasiado complejo... pero sólo al seleccionar valores múltiples; si escojo un único resultado en el cuadro de lista, la consulta funciona... no sé qué hacer...
Hola tienes que recorren la coleccion de la lista con los elementos
marcados y construir tu propio filtro y que daria mas o menos asi:

Crea un Formulario con una LISTA le activas multi select y un boton y lo
llamas cmdLista, pegas el codigo y ejecutas el formulario


Private Sub cmdLista_Click()
Dim sFiltro As String
Dim sSQL As String
Dim nI As Long

sFiltro = ""
For nI = 0 To LISTA.ItemsSelected.Count - 1
sFiltro = sFiltro & "'" &
LISTA.ItemData(LISTA.ItemsSelected.Item(nI)) & "',"
Next
If Len(sFiltro) > 0 Then
sFiltro = Mid$(sFiltro, 1, Len(sFiltro) - 1)
sSQL = "SELECT * FROM MI_TABLA WHERE MI_CAMPO IN (" & sFiltro & ")"
Else
sSQL = "SELECT * FROM MI_TABLA"
End If

'Con este resultado lo colocas en cualquier recordsource y ejecutas
el metodo requery
'Me.RecordSource = miSQL
'Me.Requery

MsgBox sSQL
End Sub

Saludos
Abel MuMo
2024-01-25 16:24:47 UTC
Permalink
Post by Francisco Prado
Post by r***@gmail.com
Post by x***@gmail.com
Hola a todos. Soy novato en esto del access y tengo un problema en
access2003.
Tengo un listbox que visualiza los registros de un campo de una tabla.
Tengo que hacer selección mútiple en el listbox... he leído que se
puede almacenar todos los valores como cadena de texto separada con
comas... pero... no me queda nada claro. ¿cómo lo debo hacer?
Muchas gracias y saludos
Hola, hace tiempo de esta conversación, pero estoy aprovechando las respuestas y tengo un problema: cuando ya he capturado en el cuadro de texto la información del cuadro de lista, intento capturar el campo para el filtro de una consulta, y el sistema me da el error de que es demasiado complejo... pero sólo al seleccionar valores múltiples; si escojo un único resultado en el cuadro de lista, la consulta funciona... no sé qué hacer...
Hola tienes que recorren la coleccion de la lista con los elementos
Crea un Formulario con una LISTA le activas multi select y un boton y lo
llamas cmdLista, pegas el codigo y ejecutas el formulario
Private Sub cmdLista_Click()
Dim sFiltro As String
Dim sSQL As String
Dim nI As Long
sFiltro = ""
For nI = 0 To LISTA.ItemsSelected.Count - 1
sFiltro = sFiltro & "'" &
LISTA.ItemData(LISTA.ItemsSelected.Item(nI)) & "',"
Next
If Len(sFiltro) > 0 Then
sFiltro = Mid$(sFiltro, 1, Len(sFiltro) - 1)
sSQL = "SELECT * FROM MI_TABLA WHERE MI_CAMPO IN (" & sFiltro & ")"
Else
sSQL = "SELECT * FROM MI_TABLA"
End If
'Con este resultado lo colocas en cualquier recordsource y ejecutas
el metodo requery
'Me.RecordSource = miSQL
'Me.Requery
MsgBox sSQL
End Sub
Saludos
Hola Francisco,

Sé que han pasado ya 8 años desde la respuesta anterior, y espero que todo vaya bien. Me he encontrado con el mismo problema y no entiendo al 100% la respuesta que proporcionas, disculpa.

En mi caso tengo un cuadro de lista llamado CodigoMasa, y he creado un botón llamado btnCodigoMasa. Mis dudas serían:
¿Qué código tengo que añadir al evento de "Al hacer clic" en dicho botón para poder almacenar todos los valores seleccionados? Están en la primera columna de la lista (columna 0)
¿Cómo uso después estos valores como criterio de filtro en otra consulta? La intención es utilizar diferentes "CodigoMasa" como filtro para una consulta posterior, para que sirva de filtro y sólo muestre resultados relacionados con los "CodigoMasa" seleccionados en esa lista.

Disculpa si la duda es muy básica, he empezado hace poco a trabajar con Access, y si bien he conseguido integrar diferentes filtros de forma sucesiva e ir sorteando diferentes problemas, cuando me han pedido habilitar la selección múltiple me he encontrado con una sutiación similar a la que te planteaban. Agradecería mucho la ayuda.

Un saludo,
Abel

Loading...