FILTRO SU CARICAMENTO - ACCESS 2019

Anonimo
2023-01-18T10:45:11+00:00

Buongiorno. Su Access 2019, all'apertura delle maschere, i dati vengono filtrati in base all'ultimo filtro applicato all'apertura precedente... questo perché c'è selezionato sulle proprietà di maschera, il "Sì" sul campo "filtro al caricamento". Sto usando un database convertito da una precedente versione dove nelle proprietà di machera questa possibilità del filtro su caricamento non era prevista e su ACCESS 2019 a quanto pare lo mette per default si "Sì"... Come posso massivamente cambiare questa impostazione su tutte le maschere del database postando il dato su "No"? Grazie.

Microsoft 365 e Office | Access | Per la casa | Altro

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

6 risposte

Ordina per: Più utili
  1. Anonimo
    2023-01-19T07:52:42+00:00

    ciao R RDF,

    francamente non realizzerei una routine VBA che si occupi di reimpostare la proprietà FilterOnLoad, imposta semplicemente il reset del filtro su scaricamento della form, alla successiva riapertura dovresti essere allineato :

    Private Sub Form_Unload(Cancel As Integer) 
    
    With Me 
    
        .Filter = vbNullString 
    
        .FilterOn = False 
    
    End With 
    

    End Sub

    valuta magari anche questa opzione su apertura :

    Private Sub Form_Open(Cancel As Integer) 
    
    With Me    
    
          .Filter = "1=0"     
          .FilterOn = True 
    
    End With 
    
    End Sub 
    

    e questa nel caso in cui si tenti di rimuovere forzatamente il filtro agendo sul ribbon :

    Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer) 
    
    Cancel = (ApplyType = 0) 
    

    End Sub

    HTH. ciao, Sandro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-01-19T06:58:47+00:00

    Option Compare Database

    Sub DisableFilterOnLoadForAllForms()

    CurrentDb.AllForms

    frm.FilterOnLoad = False

    End Sub

    scusa, ma non sono pratico nella scrittura VBA

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-01-18T15:54:20+00:00

    Mi scuso se la mia risposta precedente non è stata utile. La riga di codice menzionata, "Form.FilterOnLoad = True", non è una proprietà predefinita per i moduli in Access. Questo codice esisterebbe solo se è stato aggiunto al modulo del modulo da uno sviluppatore o se faceva parte di una funzione personalizzata o di una subroutine.

    Se si desidera disabilitare la proprietà Filtro al caricamento per tutti i moduli nel database, sarà necessario creare una funzione o una subroutine che scorrerà tutti i moduli nel database e impostare la proprietà FilterOnLoad su false per ogni modulo.

    È possibile utilizzare il frammento di codice seguente come punto di partenza:

    Sub DisableFilterOnLoadForAllForms() Per ogni frm in CurrentDb.AllForms frm. FilterOnLoad = False Avanti frm Fine sub

    È necessario eseguire questa subroutine per eseguirla e disabilitare il filtro sul caricamento per tutti i moduli nel DB.

    Si noti che questo funzionerà solo per i moduli che hanno la proprietà di filtro sul caricamento abilitata, se la proprietà non è abilitata per alcuni moduli non cambierà nulla.

    Saluti

    Abdal

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-01-18T15:41:45+00:00

    Grazie, ma non trovo nessun modulo che abbia la riga cui ti riferisci.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2023-01-18T14:31:12+00:00

    Ciao

    Sono Abdal e sarei felice di aiutarti con la tua domanda.

    In Access 2019 è possibile modificare la proprietà "Filter On Load" per tutti i moduli nel database utilizzando il codice VBA (Visual Basic, Applications Edition). Ecco un esempio di come puoi farlo:

    Aprire il database in Access e premere i tasti "ALT + F11" per aprire Visual Basic Editor.

    Nell'editor, sul lato sinistro, vedrai un elenco di oggetti nel tuo database. Espandere "Microsoft Access Class Objects" e selezionare "Form".

    Fare clic con il pulsante destro del mouse sull'oggetto "Modulo" e selezionare "Esporta file", quindi salvarlo nella posizione desiderata.

    Apri il file esportato in un editor di testo come il blocco note, vedrai il codice lì

    Trova la riga di codice che imposta la proprietà "Filter On Load", dovrebbe assomigliare a questo: Form.FilterOnLoad = True

    Modificare il valore "True" in "False" e salvare il file.

    Tornare a Visual Basic Editor, fare clic con il pulsante destro del mouse sull'oggetto "Form" e selezionare "Importa file", quindi selezionare il file modificato.

    Premere il tasto "F5" per eseguire il codice e aggiornare la proprietà "Filter On Load" per tutti i moduli nel database su "No".

    Chiudere Visual Basic Editor e salvare le modifiche apportate al database.

    Si noti che in questo modo verrà modificata l'impostazione per tutti i moduli nel database. Se si desidera modificare solo l'impostazione per moduli specifici, sarà necessario modificare il codice di conseguenza.

    Spero che questa informazione aiuti.

    Saluti

    Abdal

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento