Já me deparei com isso algumas vezes e não encontrei nenhuma solução, então espero que você possa ajudar. Tenho um formulário não vinculado com uma caixa de combinação (cmbVariety) e duas caixas de listagem (lstItems e lstProductionYears). Quando uma seleção é feita em cmbVariety, ela define a consulta rowsource subjacente para lstItems. Quando um item em lstItems é selecionado, quero que ele defina o rowsource subjacente de lstProductionYears com base na seleção.
lstItems é e DEVE ser multi select: none. Não é possível fazer com que o usuário selecione mais de uma linha na lista.
então eu tentei o código:
Private Sub lstItems_Click()
Dim i As Integer
With lstItems
For i = 0 To .ListCount - 1
If .selected(i) Then
YearsTable .Column(0, i) 'A routine for setting the rowsource for lstProductionYears based on the lstItems selection
End If
Next i
End With
Me.lstProductionYears.Requery
End Sub
e o código:
Private Sub lstItems_Click()
Dim sel As Variant
With lstItems
Debug.Print .ItemsSelected.count 'results in 0 selected even when a line is clicked
For Each sel In .ItemsSelected
YearsTable .Column(0, sel) 'A routine for setting the rowsource for lstProductionYears based on the lstItems selection
Next sel
End With
End Sub
Em nenhum dos casos a seleção é registrada. Ela funciona para clique duplo, mas eu uso isso para outra coisa. O que estou esquecendo? (Novamente - eu sei que é diferente com seleção múltipla, mas isso não é uma opção)