Condividi tramite

casella di controllo per selezionare/deselezionare i record filtrati

Anonimo
2016-10-07T05:16:13+00:00

Salve a tutti

in una maschera continua sono presenti diversi record con una casella di controllo

Nell'intestazione della maschera selezionando/deselezionando la casella di controllo dovrebbe rendere vero o falso tutte le caselle di controllo presenti nei record, però solo in quelli filtrati e non su tutti.

Grazie a voi tutti.

Microsoft 365 e Office | Accesso | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2016-10-07T15:28:55+00:00

    ciao Francesca,

    [...]

    perdonami se creo confusione.

    premetto che condivido pienamente che tecnicamente "applicazione del filtro" non significa deflaggare tutte le checkBoxes flaggate ma visualizzare solamente, ad esempio, le righe che hanno la checkBox flaggata...

    [...]

    tranqui, sono io che sono forse un po' pignolo e di conseguenza faccio domande per capire bene....

    dopo che il filtro è stato applicato la proprietà filter della form acquisisce il filtro.

    prova in questo modo :

    Private Sub chkFilter2_Click()

    DBEngine(0)(0).Execute "update t_documento set seleziona=" & Me.chkFilter2 & " where " & Me.Filter, &H80

    Me.Requery

    End Sub

    in sostanza supponendo sempre che il campo seleziona sia il campo booleano si/no associato alla form, andiamo a flaggare/deflaggare le checkBoxes associate riflettandone poi il valore nella form ad action query risolta.

    in base flag/ no flag della chkFilter2 flagghi o deflagghi le checkBoxes associata solo per il filtro impostato.

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-10-07T13:18:04+00:00

    ciao Francesca,

    non vedrei male una soluzione del tipo :

    Private Sub chkChange_AfterUpdate()

    DBEngine(0)(0).Execute "update t_documento set t_documento.seleziona=" & IIf(Me.chkChange = -1, -1, 0), &H80

    Me.Requery

    End Sub

    in modo rendere o tutte spuntate o despuntate le checkBoxes associate.

    se rendi despuntate solo quelle filtrate e con filtrate suppongo tu intenda quelle spuntate, una volta aggiornata la tabella sottostante quelle despuntate restano tali e quelle spuntate diventano anch'esse despuntate...quindi la checkBox non associata ha un'utilità tutto sommato relativa.

    comunque, se necessiti deflaggare ( ora cambio verbo) solo quelle flaggate :

    Private Sub chkChange2_AfterUpdate()

    Me.Dirty = False

    DBEngine(0)(0).Execute "update t_documento set t_documento.seleziona=" & IIf(Me.chkChange = -1, -1, 0) & _

                           "  where t_documento.seleziona=-1", &H80

    Me.Requery

    End Sub

    come sempre personalizza i nomi delle tabelle/campi/controlli con quelli proprio del tuo scenario.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-10-07T11:18:43+00:00

    Postami il codice Vba, perché non so quale soluzione hai adottato, la mia o quella di Sandro. Se hai quella di Sandro devi aggiungere l'ID alla query.

    Ho dato per scontato che il primo campo della tabella ( o del recordsetclone o della query di Sandro ) sia l'ID.

    Quando si blocca evidenziando in giallo rst(0) , posizionati con il mouse su rst(0) ti dovrebbe far vedere il valore.

    Comunque sostituisci rst(0) con rst("ID").

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-10-07T09:51:38+00:00

    Grazie Mimmo,

    l'id è presente ma quando clicco sulla casella si apre vba e si posiziona e mi evidenzia in gialo rst(0))

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-10-07T07:22:35+00:00

    Ciao,

    penso tu possa utilizzare la stessa routine vista in precedenza aggiornando di volta in volta la tabella (sperando che tu abbia previsto un Id ).

    Docmd.RunSql ("Update tuaTabella Set Selezione = Not Selezione Where Id = " & rst(0))

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento