Como puedo mostrar en un cuadro de texto, los datos que seleccione de un cuadro de lista con selección múltiple en Access

Tengo un cuadro de lista en el cual muestro varios datos y lo que quiero es dependiendo los datos seleccionados en el cuadro de lista poder mostrarlos todos al dar aceptar en un boton que tengo y este los muestre en un cuadro de texto en Access porque solo me muestra un dato

Private Sub btnaceptar_Click()
Dim itm As Variant
If Me.listanumeros.ItemsSelected.Count >= 1 Then
For Each itm In Me.listanumeros.ItemsSelected
Me.listanumeros.SetFocus: Me.listanumeros.Selected(itm) = False
Forms!GenerarKanban!lblarnes = Me.listanumeros.ItemData(itm)
Next itm
DoCmd.Close
Else
MsgBox "SELECCIONE UN NUMERO DE PIEZA", vbExclamation, "Aviso": Me.listanumeros.SetFocus

End If
End Sub

2 respuestas

Respuesta
1

Si tengo un formulario con un cuadro de lista y un cuadro de texto

Si selecciono algo en el cuadro de lista

Al pulsar el botón, me pasa al cuadro de texto lo seleccionado

El código del botón es ( el cuadro de lista se llama Elegir y el cuadro de texto Español)

Private Sub Comando16_Click()
Dim i As Integer, Tespañol As String
For i = 0 To Me.Elegir.ListCount - 1
   If Me.Elegir.Selected(i) Then
      Tespañol = Tespañol & Me.Elegir.Column(0, i) & ","
      End If
Next i
Me.Español = "" & Tespañol & ""
Me.Español = Left(Tespañol, Len(Tespañol) - 1)
End Sub

¡Gracias!  Me funciono 

A ese código como podría agregarle este mensaje en caso de que o seleccione nada

  Else
MsgBox "SELECCIONE UN NUMERO DE PIEZA", vbExclamation, "Aviso": Me.listanumeros.SetFocus

Private Sub Comando16_Click()
If IsNull([Elegir]) Then
MsgBox "SELECCIONE UN NUMERO DE PIEZA", vbOKOnly + vbExclamation, "Señor, Señor, que cabeza"

elegir.setfocus
Else
Dim i As Integer, Tespañol As String
For i = 0 To Me.Elegir.ListCount - 1
If Me.Elegir.Selected(i) Then
Tespañol = Tespañol & Me.Elegir.Column(0, i) & ","
End If
Next i
Me.Español = "" & Tespañol & ""
Me.Español = Left(Tespañol, Len(Tespañol) - 1)
End If
End Sub

Respuesta
1

Otra alternativa y más moderna y sencilla es utilizar For Each...Next. Ejemplo:

Lleno el texto pero uno por línea. 

Código del botón Llenar

Private Sub cboLlenar_Click()
  Dim varpos As Variant
  Dim strTexto As String
   If Me.lstArticulos.ItemsSelected.Count = 0 Then
        MsgBox "Debe seleccionar una o más artículos para asignar el número.", vbInformation, "Le informo"
        Exit Sub
    End If
  For Each varpos In lstArticulos.ItemsSelected
        strTexto = strTexto & Me.lstArticulos.ItemData(varpos) & vbCrLf
    Next varpos
    Me.ctlArticulos = strTexto
End Sub

Observe como valido si no hay artículos seleccionados, Como deseo un artículo por línea utilizo al final  vbCrLf, pero el control debe estar configurado como muestra la imagen siguiente:

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas