Filtro in base a maschera

di il
12 risposte

Filtro in base a maschera

Buongiorno, ho un problema, per me enorme, vorrei inserire, tramite macro, un comando per attivare un filtro in base a maschera e un altro per attivare il filtro, in una maschera, ma quando clicco sul comando, filtro in base a maschera, tutti i comandi si disattivano, come posso risolvere? Grazie per l'aiuto

12 Risposte

  • Re: Filtro in base a maschera

    Volevo aggiungere che se la maschera è Popup "si" si disattivano pure i comandi della barra superiore per cui non è possibile neanche attivare il filtro, grazie ancora
  • Re: Filtro in base a maschera

    Normalmente l'utilizzo di quel tipo di Filtro viene fatto da chi non ha dimestichezza con la programmazione, e questo per vari motivi, nonostante sia comodo non è gestibile, e chi sviluppa vuole gestire l'interfaccia Utente...
    Nel tuo caso quindi, dovresti orientarti a sviluppare un sistema di Immissione Criterio.
  • Re: Filtro in base a maschera

    Io propongo una soluzione davvero "spartana", poco elegante, ma che io ho applicato in alcuni casi disperati. Sulla maschera (oppure prevedi un'altra maschera simile) dove devi fare le tue scelte per il filtro in base a maschera, crea una etichetta su cui ci scrivi una frase del genere:
    "Dopo aver fatto le tue scelte, CLICCA SULL'ICONA IN ALTO A IMBUTO "APPLICA FILTRO"".
    In questo modo l'utente almeno sa dove deve cliccare.
  • Re: Filtro in base a maschera

    Avevo capito he il problema non è all'altezza dei principianti ma speravo ad un aiuto in più, proporzionato alle mie capacità, la soluzione di Laviosa l'avevo già presa in considerazione ma volevo risolvere in maniera più brillante, un suggerimento prego, grazie comunque di aver preso in esame il problema
  • Re: Filtro in base a maschera

    Leggi questo documento che indica l'impiego del "Filtro in base a Maschera":

    tieni comunque in considerazione che, in ambito professionale, come ti è stato indicato, si cerca di fornire all'utente scelte per quanto possibile guidate e che non permettano di agire liberamente/indistintamente sui dai,
  • Re: Filtro in base a maschera

    Grazie Willy della sollecita risposta, l'uso del filtro in base a maschera l'ho compreso e utilizzato, quello che cerco di realizzare è l'inserzione di pulsanti nell'ambito della maschera per filtrare, anche perché, come nel mio caso, ho notato che i filtri sulla barra dei menu funzionano solo se la maschera è settata su "PopUp No", diversamente si oscurano, c'è qualche rimedio alla mia modesta portata tecnica? Grazie ancora
  • Re: Filtro in base a maschera

    I pulsanti presenti, di default, nella interfaccia di Access quale il "Filtro in base a maschera" (per selezionare i dati) o il conseguente "Applica Filtro" (per impostare i criteri di selezione) possono essere attivati dalla barra standard (quindi se presente sono attivabili e possono agire sulla maschera).
    Qualora si voglia personalizzare, una propria form, disattivando la barra standard ma creando tali pulsanti (con relative icone) da porre nella propria maschera (partendo dalla auto-composizione) la operazione "Filtro in base a maschera" può essere avviata con il seguente codice:
    
    DoCmd.RunCommand acCmdFilterByForm
    
    la successiva operazione necessaria di "Applica Filtro" (in modo da attivare la selezione effettuata) soffre (come già notato) della impossibilità di esecuzione della applicazione in quanto con la prima operazione si disattivano i suddetti pulsanti.

    Ora se si vogliono tali pulsanti e relativo codice (i quali agiscano su una propria form) questi vanno posti in una barra personalizzata (toolbar o ribbon in base alla versione di Access) che rispetto alla barra Standard abbia solo i pulsanti voluti e che si riferiscano al contesto:
    https://www.office-forums.com/threads/filter-by-form-and-apply-filter.646401/
    https://bytes.com/topic/access/answers/694118-make-apply-filter-button-form-stay-active-when-filter-mode

    In alternativa, si può partire dalla maschera realizzata e creare una nuova maschera similare (specifica per la selezione dei dati) e associare i controlli (ciclando quelli valorizzati) ad un filtro della maschera di base:
    https://www.pcreview.co.uk/threads/stop-command-button-disabling-with-filter-by-form.3383605/
    oppure creare dei filtri personalizzati che possano essere scelti all'occorrenza:
    https://www.iprogrammatori.it/forum-programmazione/access/memorizzare-filtri-impostati-una-maschera-t24226.html
    che, magari, nelle nuove versioni di Access, sono state integrate nel "Filtro avanzato" (Filter by Form - Advanced) con i "Comandi speciali della scheda documento Filtro" ("Special commands on the Filter document tab") salvaldo i dati selezionati come query ed eventualmente caricarli da questa:
    https://support.office.com/it-it/article/applicare-un-filtro-per-visualizzare-record-selezionati-in-un-database-di-access-2a493ded-e544-4144-9103-b9b1d1865147
    https://support.office.com/en-us/article/Apply-a-filter-to-view-select-records-in-an-Access-database-2a493ded-e544-4144-9103-b9b1d1865147
  • Re: Filtro in base a maschera

    Ho visitato i vari link e ho capito che non è possibile inserire un comando "filtro in base a maschera" sulla maschera stessa perché vengono disabilitati gli altri comandi, sarebbe stato molto utile, ringrazio comunque molto per la disponibilità
  • Re: Filtro in base a maschera

    Buongiorno Willy, scusa se proseguo sempre a proposito del problema del filtro in base a maschera e domando: non è possibile, per evitare che i comandi sulla maschera si oscurino, inserire una routine, per esempio, "dopo aggiornamento", su un campo che selezione? Mi spiego meglio: una volta attivato il filtro in base a maschera effettuo una selezione nel campo cognome eseguendo una routine che attiva il filtro. Ho detto una cavolata? Se si mi scuso. grazie
  • Re: Filtro in base a maschera

    Il problema è che il filtro in base a maschera attiva una form similare a quella di partenza (e disattiva i pulsanti di questa) quindi, quando imposti un criterio per selezionare i dati, non hai opportunità (all'interno del filtro in base a maschera) di effettuare altre operazioni, a meno di non agire su una barra/ribbon esterna, per cui si può chiudere ma si perde la selezione effettuata.
    Magari puoi vedere queste diverse implementazioni:
    https://answers.microsoft.com/it-it/msoffice/forum/msoffice_access-mso_other/access-pulsante-filtro-in-base-a-selezione/4d40bf1b-37af-472b-ae99-24f081411306?auth=1
  • Re: Filtro in base a maschera

    Willy scusa ancora ho visitato il link che mi hai inviato dove un utente "maccess", in risposta a Giorgio Roncati, ha trova la soluzione, che allego sotto, solo che la mia scarsa esperienza non mi permette di capire come mettere in atto la soluzione proposta, per esempio: come si realizza un pulsante "Fake"? E il codice di animazione? La riga di codice penso vada messo su "Su Clik", insomma, vorrei poter provare questa soluzione ma mi occorre qualche spintarella, chiedo troppo? Grazie

    "maccess: Pensa che io nel frattempo ho avuto un altra idea per non far perdere il focus al campo con selezione parziale: ho implementato un pulsante "fake" utilizzando due immagini che lo simulano: una per "tasto su" e una per "tasto giù", cliccando col mouse hai l'impressione di premere un pulsante che ovviamente non lo è. Con un poco di codice si realizza l'animazione ed a questo punto basta il "DoCmd.RunCommand acCmdFilterBySelection" che tutto funziona regolarmente."
  • Re: Filtro in base a maschera

    La logica applicata nell'esempio del link, sopra citato. è quella di impiegare.al posto del classico pulsante di comando (command button) che attiva la maschera di selezione, una immagine che lo simuli.
    In tal modo non si perde il focus nella maschera (in uso) e si attiva direttamente il filtro sul controllo attivo (in quel momento) con un criterio di corrispondenza che può essere costruito in modo graduale, selezionando di volta in volta i vari controlli di interesse (legati comunque alla maschera attiva) al fine di effettuare una estrazione dei dati progressiva.
    Schematicamente. mettendo nella maschera una immagine (denominata ad esempio "ImmagineFiltro") e impostando il comando di "Filtro in base a selezione" in relazione al tipo di controllo su cui è attivo il focus, con un codice similare:
    
    Private Sub ImmagineFiltro_Click()
        ' Nel caso di casella di testo, di riepilogo o combinata si imposta il filtro in base a selezione
        If Screen.ActiveControl.ControlType = acTextBox _
            Or Screen.ActiveControl.ControlType = acListBox _
            Or Screen.ActiveControl.ControlType = acComboBox Then
               DoCmd.RunCommand acCmdFilterBySelection
        End If
    End Sub
    
    si otterrà la selezione progressiva dei dati.

    Inoltre, qualora si voglia osservare (ed eventualmente modificare) l'insieme dei valori impostati, su cui agisce il filtro della maschera, si può porre un pulsante con codice similare:
    
    Private Sub btnVisualizzaFiltroSelezioneAvanzato_Click()
        ' Presenta la query del filtro realizzato in base ai criteri della maschera di selezione
        DoCmd.RunCommand acCmdAdvancedFilterSort
    End Sub
    
    Che, appunto, presenta attraverso un pannello, pop-up, di interfaccia, la query con i vari controlli impostati su cui agisce il filtro di selezione sulla maschera.
Devi accedere o registrarti per scrivere nel forum
12 risposte