Buongiorno, premetto che avevo utilizzato la seguente soluzione su un altro programma.
Private Function FillItems(lst As Access.ListBox) As String
Dim varItem As Variant
Dim strItems As String
For Each varItem In lst.ItemsSelected
strItems = strItems & lst.Column(0, varItem) & ","
Next
If Len(strItems) > 0 Then strItems = Mid$(strItems, 1, Len(strItems) - 1)
FillItems = strItems
End Function
Private Sub cmdRecSurce_Click()
If Me.MiaLista.ListIndex < 0 Then Exit Sub
Dim strItems As String
strItems = FillItems(Me. MiaLista.)
If Len(strItems) > 0 Then
strItems = "SELECT * FROM Products WHERE CodiceD IN (" & strItems & ")"
Me.RecordSource = strItems
End If
End Sub
Ho cercato di riutilizzarla per filtrare un'altra form ma non ho ottenuto lo stesso risultato. Non mi da alcun errore ma mi richiede di reinserire il codice degli elementi selezionati. Quasi sicuramente l'errore sta nel codiceId che è un campo di tipo testo indicato con una lettera. ho provato ad effettuare alcune modifiche con apici e virgolette senza alcun risultato. Le mie lacune con il VBA sono enormi. Chiedevo gentilmente come poter agire per far capire che il filtro deve essere fatto su un campo Id di testo e non numerico.
Grazie mille per l'aiuto.