Contatore access

Anonimo
2016-04-09T20:42:52+00:00

Buonasera, volevo sapere se c'era un metodo per visualizzare il numero di record immessi che hanno attivo la spunta della casella di controllo (si/no) di un campo specifico.

Successivamente volevo sapere se tramite una macro, cliccando sul counter si poteva applicare un filtro che fa visualizzare tutti i record tranne quelli attivi per quel campo.

Microsoft 365 e Office | Access | 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

Anonimo
2016-04-10T09:23:10+00:00

ciao Tiziano,

=Abs(Somma([flag])) mi "conta" solo quelli della maschera, quindi se utilizzo un altro filtro mi legge la flag del filtro e non delle totali

se vuoi mostrare oltre che al conteggio dei records filtrati si e no anche il totale dei records filtrati si e no, nel caso di ulteriore filtro, procede in questo modo:

inserisci altre due textBoxes.

txtCountTotYes : con questa origine riga : =DCount("flag";"tuoRecordSource";"Flag=-1")

txtCountTotNo : con questa origine riga : =DCount("flag";"tuoRecordSource";"Flag=0")

personalizza il dominio recordSource con la tabella/query record dati della tua form.

sostitusci quel me.diry=false con me.recalc

[...]

Per il filtro ho optato per la macro su click e ho impostato [flag]=0 ottenendo così il risultato voluto.

[...]

il mio metodo permette di impostare il filtro e toglierlo se devi togliere il filtro come fai...? :-) o non è rilevante?

[...]

Comunque grazie molte per l'aiuto!!!

[...]

prego, buona domenica.

ciao, Sandro.

La risposta è stata utile?

0 commenti Nessun commento

12 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-04-10T09:48:52+00:00

    txtCountTotYes : con questa origine riga : =DCount("flag";"tuoRecordSource";"Flag=-1")

    è favolosa mentre per la successiva

    su evento click :

    private Sub chkFilter_AfterUpdate()

    Me.Filter = "flag=" & Me.chkFilter

    Me.FilterOn = Me.chkFilter

    End Sub

    su scaricamento della form :

    Private Sub Form_Unload(Cancel As Integer)

    Me.Filter = ""

    Me.FilterOn = False

    End Sub

    se aggiungo il codice all'evento su click mi da "private Sub chkFilter_click()" e il codice lo incollo subito sotto? (mi da errore che mi manca "End sub"), se cancello "private Sub chkFilter_click()" non funziona la macro mentre se cancello chkFilter_AfterUpdate() mi da un altro errore

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  3. Anonimo
    2016-04-10T08:03:52+00:00

    Grazie mille, mi ha aiutato moltissimo.. Però avrei qualche dubbio:

    =Abs(Somma([flag])) mi "conta" solo quelli della maschera, quindi se utilizzo un altro filtro mi legge la flag del filtro e non delle totali

    Per il filtro ho optato per la macro su click e ho impostato [flag]=0 ottenendo così il risultato voluto.

    Comunque grazie molte per l'aiuto!!!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-04-10T06:51:40+00:00

    ciao Tiziano9005,

    suppongo maschera  a visualizzazione maschere continue e la checkBox associata.

    puoi sfruttare il fatto che una checkBox contiene il valore -1 se spuntata e 0 se non spuntata.

    quindi il valore assoluto della somma delle checkBox rappresenta il numero delle caselle spuntate e la differenza tra il conteggio totale dei records della form ed il valore assoluto sopra menzionato rappresenta invece il numero delle checkBoxes non spuntate.

    se la checkBox si chiama flag.

    nel piepagina della form inserisci questi due textBoxes.

    txtYEs con questa orgine di controllo : =Abs(Somma([flag]))

    txtno con questa orgine di controllo: =conteggio(*)-txtyes

    inserisci questo codice nell'evento click del flag in modo da aggioranare il conteggio immediatamente :

    Private Sub flag_Click()

    Me.Dirty = False

    End Sub

    per il filtro, se ho capito quanto ci dici.

    imposta un'altra checkBox nell'instestazione della pagina chiamala chkFilter

    su evento click :

    private Sub chkFilter_AfterUpdate()

    Me.Filter = "flag=" & Me.chkFilter

    Me.FilterOn = Me.chkFilter

    End Sub

    su scaricamento della form :

    Private Sub Form_Unload(Cancel As Integer)

    Me.Filter = ""

    Me.FilterOn = False

    End Sub

    se la spunti la checkFilter otterrai tutti i records si se non spuntata tutti i records no.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento