Impostare una maschera come pagina iniziale in Access significa fare in modo che, all’apertura del database, Microsoft Access mostri automaticamente una maschera scelta da te invece di lasciare l’utente davanti al riquadro di spostamento o agli oggetti del database. È una delle personalizzazioni più utili quando vuoi trasformare un file ACCDB in una piccola applicazione gestionale: l’utente entra direttamente in una schermata principale con pulsanti, filtri, riepiloghi e collegamenti alle funzioni che gli servono.
In Access per Microsoft 365 e Access 2024 il metodo più semplice è usare File > Opzioni > Database corrente > Visualizza maschera, selezionare la maschera desiderata, confermare e poi chiudere e riaprire il database. In alternativa puoi utilizzare una macro AutoExec o il codice eseguito negli eventi Su apertura e Su caricamento della maschera. In questa guida vediamo non solo la procedura base, ma anche come scegliere il metodo giusto, come evitare blocchi all’avvio, come gestire Runtime, sicurezza e multiutenza e come creare una pagina iniziale realmente professionale.
Indice della guida
- Che cosa significa usare una maschera come pagina iniziale
- Metodo consigliato: Visualizza maschera nelle opzioni del database
- Come preparare la maschera prima di renderla iniziale
- Uso di AutoExec come alternativa o complemento
- VBA negli eventi Open e Load
- Come riottenere l’accesso al database se la maschera iniziale crea problemi
- Differenze tra Microsoft 365, Access 2024 e Access Runtime
- Impostazioni utili per un database distribuito ad altri utenti
- Esempi pratici di pagina iniziale
- Errori comuni e troubleshooting
- FAQ
Che cosa significa impostare una maschera come pagina iniziale in Access
Una maschera iniziale è semplicemente una normale maschera di Access che viene aperta automaticamente quando il database viene avviato. Può essere un menu principale, un cruscotto, una schermata di ricerca, un pannello per l’inserimento dati o una combinazione di questi elementi. La caratteristica importante è che l’utente non deve cercarla manualmente nel riquadro di spostamento.
La pagina iniziale non sostituisce il database né modifica le tabelle: è un livello di interfaccia. Dietro la maschera continuano a esistere tabelle, query, report, macro e moduli VBA. Per questo motivo è una buona pratica separare il più possibile ciò che l’utente vede dalla struttura tecnica del database. La maschera iniziale può diventare il punto di ingresso a tutte le altre funzioni, riducendo gli errori e rendendo l’applicazione molto più semplice da usare.
Questo approccio è particolarmente utile nei database aziendali. Immagina un gestionale clienti: invece di mostrare all’operatore decine di tabelle e query, all’avvio puoi presentare una maschera con i pulsanti Nuovo cliente, Cerca cliente, Nuovo ordine, Report vendite e Esci. Gli oggetti interni rimangono nascosti all’utente normale, mentre chi sviluppa il database può comunque accedervi quando serve.
Se stai costruendo l’architettura del database, può essere utile ripassare anche come creare una query in Microsoft Access e come creare una query tra più tabelle, perché molte maschere iniziali mostrano conteggi, indicatori o elenchi ricavati proprio da query salvate.
Metodo consigliato: impostare la maschera iniziale dalle Opzioni di Access
Per la maggior parte dei database il metodo più semplice e trasparente è usare l’impostazione Visualizza maschera del database corrente. Microsoft documenta questa funzione per Access per Microsoft 365, Access 2024, Access 2021, Access 2019 e Access 2016.
Procedura passo passo
- Apri il database Access in cui hai già creato la maschera da usare come schermata iniziale.
- Fai clic su File.
- Apri Opzioni.
- Nella finestra Opzioni di Access scegli Database corrente.
- Nella sezione relativa alle opzioni dell’applicazione individua Visualizza maschera.
- Apri l’elenco e seleziona il nome della maschera desiderata, per esempio
frmMenuPrincipale. - Conferma con OK.
- Chiudi il database.
- Riaprilo: Access dovrebbe visualizzare automaticamente la maschera scelta.
La chiusura e la riapertura sono importanti perché alcune impostazioni del database corrente vengono applicate soltanto al successivo avvio. Se dopo aver selezionato la maschera continui a vedere la sessione corrente senza differenze, non significa quindi che la configurazione non abbia funzionato.
La documentazione ufficiale Microsoft è disponibile nella pagina Set the default form that appears when you open an Access database. È utile conservarla come riferimento, soprattutto se lavori su più versioni di Access.
Come preparare la maschera prima di renderla pagina iniziale
La procedura tecnica richiede pochi secondi, ma una buona pagina iniziale deve essere progettata con attenzione. Prima di impostarla come schermata di avvio, aprila più volte in Visualizzazione maschera e verifica che non abbia errori, richieste di parametri impreviste o riferimenti mancanti.
Usa un nome chiaro
Conviene assegnare alla maschera un nome facilmente riconoscibile, per esempio frmHome, frmMenu, frmDashboard oppure frmAvvio. Una convenzione coerente facilita la manutenzione del database e riduce la possibilità di selezionare l’oggetto sbagliato nelle opzioni.
Riduci i controlli non necessari
La schermata iniziale deve orientare l’utente. Evita di riempirla con decine di pulsanti senza gerarchia. Raggruppa invece le funzioni in aree logiche: anagrafiche, operazioni, ricerca, report e amministrazione. Se il database è grande, puoi aprire menu secondari o maschere dedicate.
Controlla l’origine record
Una maschera iniziale può anche essere non associata, cioè priva di Origine record. È una scelta molto comune per i menu principali perché evita di caricare dati inutili all’avvio. Se invece la maschera mostra KPI, ordini recenti o statistiche, assicurati che la query sottostante sia veloce e restituisca solo le colonne necessarie.
Se una query è lenta, l’impressione dell’utente sarà che sia lento l’intero database, perché il ritardo avviene proprio all’apertura. Per i filtri e i criteri puoi consultare come usare i criteri nelle query Access e come filtrare dati con una query in Access.
Verifica i pulsanti
Ogni pulsante deve aprire l’oggetto corretto e gestire gli errori prevedibili. Se un comando apre una maschera filtrata, controlla che il valore usato come criterio esista. Se apre un report, verifica stampante, filtri e parametri. Se chiude l’applicazione, evita codice che possa lasciare record in modifica.
Aprire altre maschere dalla pagina iniziale
Puoi creare i pulsanti usando la procedura guidata oppure una macro incorporata. Con VBA, il comando più comune è DoCmd.OpenForm. Per esempio:
Private Sub cmdClienti_Click()
DoCmd.OpenForm "frmClienti", acNormal
End Sub
Se vuoi aprire una maschera filtrata:
Private Sub cmdOrdiniAperti_Click()
DoCmd.OpenForm "frmOrdini", WhereCondition:="Stato='Aperto'"
End Sub
Microsoft Learn documenta che DoCmd.OpenForm può ricevere, tra gli altri, gli argomenti FormName, View, FilterName, WhereCondition, DataMode, WindowMode e OpenArgs. Il parametro WhereCondition contiene una clausola SQL WHERE senza la parola WHERE.
Questa possibilità permette di usare la pagina iniziale come vero controller dell’applicazione. Per esempio, puoi mostrare una casella combinata con l’anno e poi aprire un report filtrato sull’anno selezionato, oppure scegliere un cliente e aprire direttamente la sua scheda.
AutoExec: alternativa e complemento alla maschera iniziale
Access offre un secondo meccanismo di avvio: una macro chiamata esattamente AutoExec. Quando il database viene aperto, Access esegue la macro AutoExec prima delle altre macro o del codice VBA collegato alle normali operazioni dell’applicazione.
AutoExec è utile quando non vuoi semplicemente mostrare una maschera, ma devi eseguire più azioni all’avvio. Per esempio puoi aprire una maschera, mostrare o nascondere elementi dell’interfaccia, eseguire controlli iniziali, aprire un report specifico, massimizzare la finestra, impostare variabili temporanee o gestire una sequenza di apertura più articolata.
Come creare AutoExec
- Vai su Crea.
- Scegli Macro.
- Aggiungi le azioni necessarie.
- Salva la macro con il nome esatto AutoExec.
- Chiudi e riapri il database per testarla.
La documentazione Microsoft è disponibile in Create a macro that runs when you open a database.
Visualizza maschera o AutoExec?
Se ti serve soltanto mostrare una maschera iniziale, Visualizza maschera è generalmente più semplice. Se devi svolgere una sequenza di attività, AutoExec è più flessibile. I due sistemi possono anche convivere, ma conviene evitare una logica di avvio troppo frammentata: se metà delle operazioni è in AutoExec e metà negli eventi della maschera, il troubleshooting diventa più difficile.
Usare gli eventi della maschera iniziale
Una terza possibilità consiste nel collegare macro o VBA agli eventi della maschera stessa. Gli eventi più usati sono Su apertura e Su caricamento. Una volta che la maschera è stata impostata come schermata iniziale, il codice associato a questi eventi viene eseguito quando la maschera parte.
Per esempio, nell’evento Load puoi aggiornare una casella di testo che mostra il nome dell’utente:
Private Sub Form_Load()
Me.txtUtente = Environ$("Username")
End Sub
Oppure puoi mostrare la data corrente:
Private Sub Form_Load()
Me.txtDataAvvio = Date
End Sub
Evita però di inserire nell’evento Load elaborazioni molto lunghe. Se devi aggiornare grandi quantità di dati o eseguire query complesse, valuta se l’operazione deve davvero essere fatta a ogni avvio. Una pagina iniziale dovrebbe comparire rapidamente.
Come recuperare il database se la maschera iniziale crea problemi
Uno dei timori più comuni è: se imposto una maschera iniziale e poi quella maschera contiene un errore, rimango bloccato? In condizioni normali no. Access prevede un meccanismo per bypassare molte opzioni di avvio.
Microsoft indica che puoi tenere premuto il tasto SHIFT mentre apri il database. In questo modo vengono ignorate numerose opzioni di avvio, compresa la maschera predefinita; anche la macro AutoExec può essere bypassata. Devi mantenere SHIFT premuto durante l’apertura e, se compaiono avvisi di sicurezza, continuare a tenerlo premuto mentre li chiudi.
La procedura ufficiale è descritta nella pagina Bypass startup options when you open a database.
Quando SHIFT non funziona
Uno sviluppatore può disabilitare deliberatamente il bypass impostando la proprietà AllowBypassKey a False. È una misura usata in alcune applicazioni distribuite, ma va applicata con cautela. Se sei ancora nella fase di sviluppo, lascia attivo il bypass: è una rete di sicurezza preziosa.
Prima di disabilitare SHIFT, conserva sempre una copia di sviluppo del file, separata dalla versione distribuita agli utenti. In un progetto professionale è consigliabile mantenere una copia sorgente modificabile, una copia di test, una copia distribuita e backup periodici del back-end dati se il database è diviso.
Differenze tra Access per Microsoft 365 e Access 2024
Per la funzione descritta in questa guida non ci sono differenze operative sostanziali tra Access per Microsoft 365 e Access 2024: la documentazione Microsoft corrente elenca entrambe le versioni tra quelle a cui si applicano le impostazioni della maschera predefinita, le proprietà dei form e le principali funzioni discusse.
Microsoft 365 riceve aggiornamenti continui secondo il canale configurato, mentre Access 2024 è una versione perpetua con un ciclo di aggiornamenti diverso. Per questo, nomi o posizione di alcuni comandi possono subire piccoli cambiamenti grafici nel tempo, ma la logica di File > Opzioni > Database corrente > Visualizza maschera rimane quella documentata.
Come funziona con Access Runtime
Access Runtime è pensato per consentire agli utenti di eseguire applicazioni Access senza avere l’esperienza completa di progettazione dell’edizione desktop. Proprio per questo una buona maschera iniziale diventa ancora più importante. L’utente Runtime deve poter raggiungere tutte le funzioni necessarie tramite le maschere, i pulsanti e i menu che hai progettato.
Non conviene progettare un’applicazione Runtime contando sul fatto che l’utente navighi manualmente nel riquadro di spostamento o apra oggetti tecnici. La pagina iniziale dovrebbe quindi fornire un percorso chiaro verso inserimento dati, ricerca, report, impostazioni consentite e chiusura.
Ricorda inoltre che Runtime non trasforma Access in una piattaforma web o macOS nativa. Il database desktop Access rimane un’applicazione Windows. Se il requisito è l’uso tramite browser o su Mac senza Windows, serve valutare un’architettura diversa; non è corretto descrivere la maschera iniziale Access come una home page web.
Pagina iniziale e database multiutente
Nei database usati da più persone, la schermata iniziale può essere il posto giusto per mostrare informazioni sullo stato dell’applicazione, ma non deve diventare un collo di bottiglia. Se il database è diviso in front-end e back-end, ogni utente dovrebbe generalmente avere una copia locale del front-end collegata alle tabelle condivise.
Evita query pesanti che partono automaticamente per tutti gli utenti e bloccano grandi set di record. Se devi visualizzare un conteggio, considera query aggregate leggere o aggiornamenti attivati su richiesta. Le proprietà di blocco dei record e la concorrenza devono essere progettate in base al tipo di dati e al numero di utenti.
Esempio pratico: creare una pagina iniziale per un database clienti
Supponiamo di avere le tabelle Clienti, Ordini e DettagliOrdine. La maschera iniziale frmHome potrebbe essere non associata e contenere cinque pulsanti: Nuovo cliente, Cerca cliente, Nuovo ordine, Ordini aperti e Report vendite.
Il pulsante Nuovo cliente potrebbe usare:
Private Sub cmdNuovoCliente_Click()
DoCmd.OpenForm "frmClienti", DataMode:=acFormAdd
End Sub
Quello per gli ordini aperti:
Private Sub cmdOrdiniAperti_Click()
DoCmd.OpenForm "frmOrdini", WhereCondition:="[Stato]='Aperto'"
End Sub
Per evitare errori, prima di distribuire il file prova ogni pulsante con dati reali e con casi limite: nessun ordine aperto, cliente senza ordini, record eliminato, tabelle temporaneamente non raggiungibili e valori Null.
Rendere più professionale la maschera iniziale
Una pagina iniziale efficace non richiede effetti grafici complessi. La qualità deriva soprattutto da coerenza, chiarezza e prevedibilità.
Usa una gerarchia visiva
Metti in alto il nome dell’applicazione e, se utile, il logo aziendale. Raggruppa i pulsanti per funzione e mantieni allineamenti e dimensioni coerenti. Non usare colori diversi per ogni comando: il colore dovrebbe comunicare una funzione, non decorare casualmente.
Mostra solo ciò che serve
Un amministratore può avere pulsanti aggiuntivi, ma l’operatore non deve vedere funzioni che non usa. Puoi gestire la visibilità dei controlli tramite proprietà o VBA, in base al profilo dell’utente.
Aggiungi informazioni di contesto
Puoi visualizzare versione dell’applicazione, nome dell’utente, data, ambiente o percorso del back-end. Queste informazioni sono utili anche quando l’utente segnala un problema al supporto.
Nascondere il riquadro di spostamento: serve davvero?
Molti sviluppatori associano la pagina iniziale alla scelta di nascondere il riquadro di spostamento. È possibile intervenire sulle opzioni del database corrente, ma nascondere gli oggetti non è una vera misura di sicurezza. Serve soprattutto a semplificare l’interfaccia e a evitare modifiche accidentali.
Se il database contiene dati sensibili, devi proteggere correttamente file, cartelle, account Windows, back-end e autorizzazioni delle origini dati. Una maschera iniziale non sostituisce la sicurezza del sistema.
Problemi comuni e soluzioni
La maschera non si apre all’avvio
Controlla di aver selezionato la maschera in Database corrente e di aver chiuso e riaperto il file. Verifica anche che il nome della maschera non sia stato modificato dopo la configurazione. Se hai una macro AutoExec, controlla che non chiuda o sostituisca la maschera.
Compare una richiesta Immettere valore parametro
Di solito significa che l’origine record della maschera o uno dei controlli contiene un riferimento che Access non riesce a risolvere: nome di campo errato, controllo rinominato, query che richiede un parametro o riferimento a una maschera non aperta. Apri direttamente la query sottostante e individua il riferimento mancante.
La schermata iniziale è lenta
Controlla query, funzioni di dominio, immagini molto grandi, codice negli eventi Load/Open e connessioni a tabelle collegate. Una maschera non associata con pulsanti è quasi sempre più rapida di un dashboard che carica migliaia di record all’avvio.
Gli utenti chiudono la maschera e vedono gli oggetti
Puoi rimuovere il pulsante di chiusura della maschera, gestire l’evento Unload o progettare l’interfaccia in modo che il comando Esci chiuda l’applicazione. Evita però di impedire ogni via di recupero durante lo sviluppo.
Il database si blocca su un errore VBA
Aggiungi gestione degli errori alle routine critiche. Per esempio:
Private Sub Form_Load()
On Error GoTo GestioneErrore
Me.txtDataAvvio = Date
Exit Sub
GestioneErrore:
MsgBox "Errore durante l'apertura della schermata iniziale: " & Err.Description, vbExclamation
End Sub
In produzione il messaggio dovrebbe essere comprensibile all’utente e, se possibile, l’errore dovrebbe essere registrato in una tabella di log.
Checklist prima della distribuzione
- La maschera scelta si apre correttamente da sola.
- Il valore Visualizza maschera è impostato.
- Il database è stato chiuso e riaperto per testare l’avvio reale.
- Tutti i pulsanti funzionano.
- Le query della home sono rapide.
- Non compaiono richieste di parametri inattese.
- Gli errori VBA sono gestiti.
- Hai una copia di sviluppo separata.
- Hai verificato l’avvio con Access Runtime se distribuirai Runtime.
- Hai provato il comportamento con utenti senza privilegi amministrativi.
- Hai definito una procedura di recupero tramite SHIFT, se il bypass non è stato disabilitato.
FAQ sulla maschera iniziale di Access
Posso impostare qualsiasi maschera come pagina iniziale?
Sì, purché la maschera esista nel database e possa essere aperta senza errori. In pratica conviene scegliere una maschera progettata appositamente per l’avvio.
Devo usare VBA?
No. Per mostrare automaticamente una maschera basta l’opzione Visualizza maschera. VBA serve solo se desideri logiche aggiuntive.
AutoExec è obbligatoria?
No. È un’alternativa o un complemento utile quando devi eseguire più azioni all’avvio.
Come faccio a evitare di rimanere bloccato?
Durante lo sviluppo conserva il bypass con SHIFT e una copia di backup. Microsoft documenta il tasto SHIFT proprio per ignorare molte impostazioni di avvio.
La maschera iniziale funziona con Access Runtime?
Sì, ed è particolarmente utile perché in Runtime l’applicazione deve offrire un’interfaccia completa all’utente. Verifica però ogni funzione nella configurazione Runtime prima della distribuzione.
Posso aprire la pagina iniziale direttamente filtrata?
L’impostazione Visualizza maschera apre l’oggetto scelto. Se servono filtri o condizioni iniziali, puoi applicarli negli eventi della maschera o gestire l’apertura tramite AutoExec e OpenForm.
Posso mostrare una home diversa a utenti diversi?
Sì, ma richiede una logica applicativa. Puoi usare una maschera iniziale comune che riconosce l’utente e rende visibili determinati pulsanti, oppure aprire maschere diverse tramite macro/VBA. Evita di basare la sicurezza esclusivamente sulla visibilità dei controlli.
Questa funzione rende Access una web app?
No. La maschera iniziale è una funzione dell’applicazione desktop Access su Windows. Non crea una pagina web e non fornisce un’interfaccia Mac nativa.
Un ultimo consiglio sulla manutenzione della schermata iniziale
Quando il database cresce, tratta la maschera iniziale come un componente centrale dell’applicazione e non come una schermata decorativa. Documenta quali pulsanti aprono quali oggetti, quali query vengono eseguite all’avvio e quali variabili o controlli vengono inizializzati. Se un collega dovrà modificare il file tra mesi, una struttura chiara riduce molto il tempo necessario per capire il flusso. Puoi anche aggiungere un piccolo numero di versione nella maschera e aggiornarlo a ogni rilascio: quando un utente segnala un problema saprai subito quale front-end sta usando.
È utile inoltre separare le operazioni indispensabili da quelle opzionali. Se una query di riepilogo fallisce perché una fonte esterna non è disponibile, valuta se la home debba comunque aprirsi e mostrare un avviso, invece di interrompere completamente l’avvio. Nei database collegati a SQL Server, file di rete o altre origini, questa scelta rende l’applicazione più resiliente. L’evento Load può controllare la disponibilità di una risorsa, ma dovrebbe farlo con tempi brevi e con una gestione dell’errore prevedibile.
Infine prova periodicamente l’apertura su una postazione diversa da quella di sviluppo. Percorsi assoluti, riferimenti a librerie, stampanti predefinite, autorizzazioni cartella e differenze tra installazioni a 32 o 64 bit possono emergere solo su altri computer. La semplice impostazione della maschera iniziale è indipendente dall’architettura 32/64 bit, ma il codice VBA richiamato dalla maschera potrebbe non esserlo se usa dichiarazioni API di Windows. In quel caso devi verificare le dichiarazioni compatibili con VBA7 e, dove necessario, l’attributo PtrSafe. Una prova reale su ogni ambiente supportato resta il modo più affidabile per evitare sorprese agli utenti.
Conclusione
Per impostare una maschera come pagina iniziale in Access il metodo più diretto è aprire File > Opzioni > Database corrente, scegliere la maschera in Visualizza maschera, salvare, chiudere e riaprire il database. È una configurazione semplice, ma ha un impatto enorme sull’usabilità: trasforma un insieme di oggetti Access in un’applicazione con un punto di ingresso chiaro.
Quando servono operazioni aggiuntive puoi affiancare una macro AutoExec oppure usare gli eventi Open e Load della maschera. Mantieni però la logica di avvio semplice, testa sempre il database con un file di prova e conserva una via di recupero. In questo modo la pagina iniziale diventa uno strumento affidabile, non un elemento che complica la manutenzione.
Per continuare con le guide dedicate a Microsoft Access consulta la categoria Guide Access, dove trovi tutorial su query, tabelle, relazioni e automazione del database.