Notte a tutti. Problema quotidiano di access.
Devo generare dinamicamente delle query abbastanza complesse e mi sono arenato sul classico seleziona/deseleziona tutti. Ho provato a crearmi una semplice mascherina giusto per capire il funzionamento della cosa. Ho messo quattro checkbox, cb1, cb2 e cb3 che fanno riferimento rispettivamente alle voci pane, pasta, pizza e cbAll che serve per selezionare e deselezionare il tutto. Sembra essere tutto ok nel senso che mi viene generata la stringa che mi aspetto (e che mi servirà nella reale applicazione per mettere le voci scelte all'interno di un IN).
Vengo al dunque. Supponiamo che io spunti la voce seleziona tutti. Le tre checkbox mi vengono giustamente spuntate. Se deseleziono una delle tre voci però il pulsante seleziona tutti rimane spuntato e io vorrei che questo non accadesse.
Poichè le voci selezionabili saranno parecchie e non 3 come in questa prova vorrei sapere come evitare di dover scrivere una schifezza del genere per ogni singola checkbox.
codice:
Private Sub cb1_Click()
If cb1.Value = 0 Then
cbAll.Value = 0
End If
End Sub
Immagino ci sia il modo di automatizzare il tutto ma non so come.
Grazie e scusate se mi sono dilungato. Notte ancora.
codice:
Option Base 1
Private Sub btnOk_Click()
Dim i As Integer
Dim str As String
str = ""
cibi = Array("Pane", "Pasta", "Pizza")
For i = 1 To 3
If (Me.Controls("cb" & i) = -1) Then
str = str & cibi(i) & ","
End If
Next i
If Len(str) > 0 Then
str = Mid(str, 1, Len(str) - 1)
End If
MsgBox (str)
End Sub
Private Sub cbAll_Click()
Dim i As Integer
For i = 1 To 3
Me.Controls("cb" & i) = Me.cbAll
Next i
End Sub