Cómo validar si un cuadro de lista tiene filas seleccionadas?

Estoy tratando de hacer una validación para saber si existen o no, filas seleccionas en un cuadro de lista.

El cuadro de lista lo lleno con el siguiente código:

Me.Lts_programaciones.RowSource = "SELECT IDENTIFICACION,Nombre_Completo,Dia,Hora_descripcion FROM tblprueba" _
& " WHERE Dia BETWEEN # " & Format(Me.txt_Fecha_Ini, "mm-dd-yyyy") & "# AND #" & Format(Me.txt_Fecha_Fin, "mm-dd-yyyy") & "# AND ESTADO_CITA='PROGRAMADO' AND PROCEDENCIA='NIVEL1' AND Hora IS NOT NULL "
Me.Lts_programaciones. Requery

En el botón que se debe validar si existe o no filas seleccionadas tengo este código:

If Lts_programaciones.ListIndex = -1 Then
  MsgBox "No"
'Me.Lts_programaciones.Requery
Else
If Lts_programaciones.ListIndex <> -1 Then
  MsgBox "si"
End If
End If

Cuando abro el formulario y cargo el cuadro de lista, oprimo el botón de validación y me indica que no existe ningún dato seleccionado, luego seleccionó alguna fila y vuelvo a dar click en el botón y me indica que si existe un registro seleccionado.

Intenté separando los dos "IF" pero me da el mismo resultado, luego le quite el segundo "IF" y deje el msgBox después del "Else" y ninguno me ha funcionado .

De antemano les agradezco la ayuda que siempre me brindan.

El problema que tengo es que luego de ese paso, le quito todas las filas que seleccione y me sigue diciendo que tengo filas seleccionadas.

1 Respuesta

Respuesta
1

No sé como está construido tu formulario, y si lo he entendido bien, pero si tengo un formulario con un cuadro de lista llamado Elegir y un botón, si no elijo nada y pulso el botón

Mientras que si selecciono al menos uno

El cñodigo del evento Al hacer clic del botón es

Private Sub Comando170_Click()
If Not IsNull([Elegir].Value) Then
MsgBox "Hay alguno elegido"
Else
MsgBox "No hay ninguno"
End If
End Sub

gracias por contestar tan rápido!!

 Ya descubrí porque ninguna validación me ha estado funcionando, resulta que opción de "selección múltiple" lo tengo en "simple" ya que debo seleccionar varios registros.

  Si dejo "selección múltiple" en la opción de "Ninguna" si funcionan todas las validaciones incluyendo la que me sugeriste.

Me encontré un código que lo utilizaban para contar los registros seleccionados, si me funciona como "selección múltiple" en la opción  "simple", pero no se si me dará algún problema a futuro, ya que nunca he utilizado una validación de este tipo.

Este es el código: 

Dim seleccionados As Integer
'recorremos cada elemento del ListBox
For i = 0 To Lts_programaciones.ListCount - 1
    If Lts_programaciones.Selected(i) = True Then
       MsgBox "seleccionados"      
        Exit Sub
    End If
Next i
        MsgBox "no seleccionados"
   

Te irá perfecto, no lo dudes.

En realidad lo que hace es contar si hay, al menos, uno seleccionado. Si lo hay ¿Para qué seguir?, se sale de la instrucción y a otra cosa mariposa.

¡Gracias! 

Ya sabiendo lo que querías también puedes ponerlo ( hay mil formas) como:

Si no eliges ninguno

Y si eliges algunos

El código del botón en este caso es

Private Sub Comando170_Click()
Dim var As Variant, b As Byte
For Each var In Me.Elegir.ItemsSelected
b = Nz([b]) + 1
Next
MsgBox " Hay " & b & " elegidos", vbOKOnly + vbInformation, "No lo dudes, es así"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas