Come creare pulsanti che eseguono macro in Access: tutorial pratico

Creare pulsanti che eseguono macro in Access è uno dei modi migliori per trasformare un database tecnico in un’applicazione facile da usare. Invece di chiedere all’utente di aprire query, cercare report nel riquadro di spostamento o ricordare sequenze di comandi, puoi creare una maschera con pulsanti come Nuovo cliente, Apri ordini, Esporta Excel, Report mensile o Chiudi applicazione. Ogni pulsante può richiamare una macro autonoma, contenere una macro incorporata oppure eseguire una procedura VBA.

Microsoft documenta l’uso dei pulsanti di comando nelle maschere Access e la possibilità di collegarli alla proprietà Su clic. Questa guida mostra le tecniche principali in Access per Microsoft 365 e Access 2024 e spiega come progettare pulsanti affidabili anche nelle applicazioni distribuite con Access Runtime.

Indice

  • Come funziona un pulsante
  • Procedura guidata
  • Macro incorporata
  • Macro autonoma
  • Trascinare una macro
  • Aprire maschere
  • Aprire report
  • Filtri
  • Import/export
  • Sicurezza
  • Runtime
  • FAQ

Il pulsante come interfaccia dell’applicazione

Un pulsante di comando è un controllo inserito in una maschera. Il suo compito non è memorizzare dati ma avviare un’azione. L’evento più comune è Su clic. Quando l’utente preme il pulsante, Access esegue la macro o il codice associato.

Questo modello è importante perché separa l’utente dalla struttura. Un operatore non deve conoscere il nome qryVenditeMensili; vede il pulsante “Genera report vendite”. La macro sottostante può aprire la query, il report o eseguire l’export.

Creare un pulsante con la procedura guidata

  1. Apri la maschera in visualizzazione Struttura.
  2. Assicurati che Usa creazioni guidate controllo sia attivo se vuoi il wizard.
  3. Seleziona il controllo Pulsante.
  4. Disegnalo nella maschera.
  5. La procedura guidata propone categorie e azioni.
  6. Scegli l’azione desiderata, per esempio aprire una maschera.
  7. Configura l’oggetto e gli eventuali criteri.
  8. Imposta testo o immagine.
  9. Concludi e salva la maschera.
  10. Prova il pulsante in visualizzazione Maschera.

La procedura guidata è ottima per iniziare, ma dopo la creazione controlla sempre le proprietà e il codice o la macro generata. Usa nomi chiari e verifica i filtri.

Nominare correttamente il pulsante

Access può assegnare nomi generici come Comando12. Cambiali. Una convenzione comune usa il prefisso cmd: cmdNuovoCliente, cmdApriOrdini, cmdReport. La Didascalia può essere “Nuovo cliente” o “Report mensile”.

Il nome tecnico è utile nel codice e nella documentazione; la didascalia deve essere comprensibile all’utente.

Macro incorporata nella proprietà Su clic

Seleziona il pulsante, apri il Foglio proprietà e vai alla scheda Evento. Nella proprietà Su clic scegli Macro incorporata. Il Generatore di macro permette di aggiungere azioni.

Una macro incorporata è adatta quando la logica appartiene solo a quel pulsante. Per esempio un pulsante Chiudi può contenere l’azione di chiusura della maschera corrente.

Richiamare una macro autonoma

Se la stessa sequenza deve essere usata da più pulsanti, crea una macro autonoma nel riquadro di spostamento. I pulsanti possono richiamarla. In questo modo la logica resta centralizzata.

Per esempio mcrEsportaVendite può essere richiamata sia dalla dashboard sia dalla maschera Report. Una modifica alla macro vale per entrambi.

Trascinare una macro sulla maschera

Microsoft documenta un metodo rapido: apri la maschera in Struttura e trascina una macro dal riquadro di spostamento sulla maschera. Access crea automaticamente un pulsante associato alla macro.

È molto comodo per costruire un menu. Dopo il trascinamento personalizza nome e didascalia perché il valore predefinito potrebbe non essere adatto all’utente.

Pulsante che apre una maschera

Uno scenario classico è aprire frmClienti. La macro utilizza l’azione ApriMaschera. Puoi decidere visualizzazione, modalità dati e filtro.

Se il pulsante è nella dashboard, probabilmente vuoi mostrare tutti i clienti. Se è nella maschera Ordini, potresti invece aprire solo il cliente dell’ordine corrente.

Aprire una maschera filtrata

Per filtrare usa una condizione Where basata sul valore del controllo corrente. Se il campo IDCliente è numerico, costruisci un criterio numerico. Se il campo è testo, delimitane correttamente il valore.

Prima di inserire la logica nel pulsante, prova il criterio in una query. Un filtro mal costruito è una delle cause principali di “il pulsante apre una maschera vuota”.

Pulsante Nuovo record

Puoi creare un pulsante che apre una maschera in modalità inserimento oppure porta al nuovo record. È utile in una dashboard operativa. Prima di permettere l’inserimento, imposta valori predefiniti e convalide nella maschera o nelle tabelle.

Non usare il pulsante per aggirare regole. La convalida fondamentale deve stare nel modello dati o essere applicata coerentemente a ogni percorso di inserimento.

Pulsante Salva

Access salva spesso automaticamente il record quando cambia record o chiude la maschera. Un pulsante Salva può comunque essere utile per rendere esplicita l’azione. La macro o VBA può forzare il salvataggio del record corrente.

Prima del salvataggio controlla campi obbligatori e mostra un messaggio utile. Se il salvataggio fallisce per una regola di tabella, intercetta l’errore dove possibile.

Pulsante Elimina

L’eliminazione è un’azione sensibile. Aggiungi una conferma chiara e valuta se l’utente debba davvero cancellare record o se sia preferibile impostare uno stato Inattivo.

In database con relazioni, l’integrità referenziale può impedire l’eliminazione. Non disattivarla per far funzionare il pulsante; gestisci il caso correttamente.

Pulsante che apre un report

La macro può usare ApriReport e mostrare l’anteprima. Puoi filtrare il report per cliente, mese o stato. Questo consente di creare un’interfaccia di reporting senza mostrare il riquadro di spostamento.

Per report pesanti valuta prima i criteri. Non caricare milioni di righe e filtrare soltanto alla fine.

Pulsante Esporta PDF

Un pulsante può aprire o esportare un report in PDF. Per nomi dinamici e percorsi complessi VBA offre più controllo. Se il percorso è fisso e il report è standard, una macro può bastare.

Verifica sempre che la cartella esista e che l’utente abbia permessi di scrittura.

Pulsante Esporta Excel

Puoi associare un’azione di import/export foglio o richiamare una procedura VBA con TransferSpreadsheet. Per un report operativo è preferibile esportare una query salvata con campi già puliti.

Mostra al termine il percorso del file o apri la cartella solo se davvero utile. Non lasciare l’utente incerto sull’esito.

Pulsante Importa dati

Per importazioni manuali puoi creare un pulsante riservato agli amministratori. La macro importa in staging, esegue controlli e apre un report di validazione.

Evita un pulsante che importa direttamente nella tabella principale senza backup, chiavi e controlli.

Pulsante Cerca

Una casella di testo e un pulsante Cerca possono applicare un filtro alla maschera. La macro legge il valore del controllo e imposta il filtro. Se la casella è vuota, rimuove il filtro.

Per ricerche testuali gestisci caratteri jolly e apostrofi. Se la logica diventa complessa, costruisci il criterio in VBA.

Pulsante Mostra tutti

Ogni interfaccia che applica filtri dovrebbe offrire un modo evidente per rimuoverli. Un pulsante Mostra tutti riduce le richieste di supporto “mancano dei record”.

Pulsante con condizioni

Una macro incorporata può usare If. Per esempio: se IDCliente è Null mostra “Selezionare un cliente”; altrimenti apri il report. Questo evita errori e rende l’esperienza più guidata.

Disabilitare il pulsante quando non serve

Puoi impostare la proprietà Enabled da VBA o tramite logica appropriata. Per esempio il pulsante “Stampa fattura” può essere disabilitato finché l’ordine non è confermato.

È meglio prevenire un’azione impossibile che mostrare un errore dopo il clic.

Visibilità dei pulsanti per ruolo

In un’applicazione puoi nascondere funzioni amministrative agli utenti normali. Non considerare però la proprietà Visible come sicurezza dei dati. Le autorizzazioni reali devono essere applicate al back-end o al file.

Macro o VBA sul pulsante

Una macro è ottima per aprire oggetti e applicare filtri semplici. VBA è migliore quando devi validare molti campi, ciclare file, usare DAO, gestire errori o costruire criteri complessi.

La proprietà Su clic può essere [Procedura evento]. Nell’editor VBA scrivi la Sub del pulsante. Mantieni la procedura breve e chiama funzioni riutilizzabili.

Gestione errori VBA

Per pulsanti che modificano dati o creano file usa On Error GoTo. Mostra un messaggio leggibile e registra il dettaglio tecnico. Non lasciare errori runtime non gestiti agli utenti.

Conferme

Usa conferme per azioni irreversibili, non per ogni apertura. Se ogni pulsante chiede “Sei sicuro?”, l’utente imparerà a fare clic senza leggere.

Feedback visivo

Per procedure lunghe cambia la didascalia, mostra una barra o un messaggio di stato. Evita di far sembrare Access bloccato. Al termine ripristina l’interfaccia anche in caso di errore.

Progettare una dashboard

Raggruppa i pulsanti per funzione: Anagrafiche, Operazioni, Report, Amministrazione. Usa dimensioni coerenti e testi brevi. Non riempire la schermata con cinquanta comandi senza gerarchia.

Le funzioni frequenti devono essere evidenti. Quelle rare possono stare in una maschera secondaria.

Access Runtime

Runtime rende i pulsanti ancora più importanti perché l’utente non dispone del normale ambiente di progettazione. Ogni funzione necessaria deve essere raggiungibile dall’interfaccia.

Prevedi anche un pulsante Esci che chiude in modo controllato l’applicazione. Testa tutte le macro nel Runtime reale.

Sicurezza

Alcune macro e codice possono essere bloccati se il database non è attendibile. Distribuisci il front-end da una posizione controllata, configura Trusted Location e usa firma digitale quando appropriato.

Non chiedere agli utenti di abbassare globalmente il livello di sicurezza per far funzionare un pulsante.

ACCDE

Per distribuzione puoi creare ACCDE, che impedisce modifiche a codice e progettazione VBA in vari oggetti. È utile insieme a Runtime. Non protegge però il back-end da accessi non autorizzati: applica permessi reali.

32 e 64 bit

Le macro semplici funzionano indipendentemente dall’architettura, ma il codice richiamato può usare API, ActiveX o provider. Testa il pulsante su entrambe le architetture se il progetto le supporta.

Pulsanti in multiutente

Un pulsante che esegue un’operazione globale può essere premuto contemporaneamente da più utenti. Se l’azione deve essere esclusiva, implementa un lock logico, una transazione server o spostala in un processo amministrativo.

Non mettere manutenzione globale nella dashboard di tutti

Compattazione del back-end, import massivi e migrazioni non devono essere funzioni accessibili a ogni utente. Crea un pannello amministrativo separato.

Documentare i pulsanti

Per le funzioni importanti registra nome controllo, maschera, evento, macro o procedura richiamata. Questo facilita la manutenzione quando un pulsante smette di funzionare.

Testing

Prova record valido, record mancante, filtro vuoto, back-end offline, cartella senza permessi e Runtime. Per pulsanti di eliminazione usa una copia di test.

Problemi comuni

Il pulsante non risponde

Controlla proprietà Su clic, macro, condizioni e stato Enabled.

Apre la maschera ma nessun record

Il criterio Where è errato o il valore corrente è Null.

Compare una richiesta parametro

Un nome di campo o controllo non viene riconosciuto.

Export non crea il file

Verifica percorso, permessi, query e sicurezza.

Funziona in Access ma non Runtime

Il comando dipende da strumenti non presenti o da riferimenti mancanti.

Il pulsante viene premuto due volte

Per processi lunghi disabilitalo durante l’esecuzione e usa log/idempotenza.

Checklist

  • Nome cmd chiaro.
  • Didascalia comprensibile.
  • Su clic configurato.
  • Condizioni testate.
  • Errori gestiti.
  • Feedback utente.
  • Permessi corretti.
  • Runtime testato.
  • Multiutente considerato.
  • Documentazione aggiornata.

FAQ

Un pulsante deve usare per forza una macro?

No. Può usare macro, procedura evento VBA o azioni create dalla procedura guidata.

Posso trascinare una macro su una maschera?

Sì, Microsoft documenta questa tecnica e Access crea il pulsante.

Posso aprire un report filtrato?

Sì, passando una condizione Where appropriata.

Posso esportare Excel?

Sì, con macro o VBA.

I pulsanti funzionano in Runtime?

Sì, se l’applicazione è progettata e testata per Runtime.

Come evito doppio clic su operazioni lunghe?

Disabilita temporaneamente il pulsante e rendi la procedura idempotente.

Fonti Microsoft

Microsoft spiega come usare un pulsante di comando per avviare azioni e descrive le macro UI. Queste risorse si applicano alle versioni desktop correnti indicate nelle pagine.

Conclusione

Creare pulsanti che eseguono macro in Access consente di nascondere la complessità del database dietro un’interfaccia semplice. Usa macro incorporate per azioni locali, macro autonome per logiche riutilizzabili e VBA quando servono controlli avanzati.

Per approfondire consulta creare una macro in Microsoft Access e tutte le Guide Access.

Lascia un commento