Introduzione alla programmazione in Access

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Quando si crea un nuovo database, in genere si inizia creando oggetti di database come tabelle, maschere e report. A un certo punto, potrebbe essere necessario aggiungere la programmazione per automatizzare i processi e connettere tali oggetti. Questo articolo presenta gli strumenti di programmazione in Access.

Contenuto dell'articolo

Informazioni sulla programmazione

In Access, programmare significa aggiungere funzionalità al database usando macro di Access o Visual Basic, Applications Edition (VBA) codice. Ad esempio, è possibile creare una maschera e un report e quindi aggiungere un pulsante di comando alla maschera che apre il report quando viene selezionato. In questo caso, creare una macro o VBA una routine e quindi impostare la proprietà evento del pulsante di OnClick comando in modo che il pulsante di comando esegua la macro o la routine. Per un'operazione semplice, ad esempio l'apertura di un report, è possibile usare la Creazione guidata Pulsante di comando per eseguire il lavoro oppure disattivare la procedura guidata e programmarla manualmente.

Nota

Molte applicazioni di Microsoft Office usano il termine "macro" per fare riferimento al VBA codice. Questo può confondere gli utenti di Access perché, in Access, il termine "macro" fa riferimento a una raccolta denominata di azioni di macro che vengono assemblate usando il Generatore di macro. Le azioni di macro di Access rappresentano solo un sottoinsieme dei comandi disponibili in VBA. Il Generatore di macro offre un'interfaccia più strutturata rispetto a Visual Basic Editor, quindi è possibile aggiungere la programmazione a controlli e oggetti senza dover imparare VBA il codice. Negli articoli della Guida di Access le macro di Access sono denominate macro. VBA codice è chiamato VBA codice, una funzione o una routine. VBA il codice viene archiviato nei moduli di classe, che fanno parte di singole maschere o report e in genere contengono codice solo per tali oggetti, e in moduli, che non sono collegati a oggetti specifici e in genere contengono codice globale che è possibile usare in tutto il database.

Oggetti come maschere e report e controlli come pulsanti di comando e caselle di testo hanno proprietà evento a cui è possibile collegare macro o routine. Ogni proprietà evento è associata a un evento specifico, ad esempio il clic del mouse, l'apertura di una maschera o la modifica dei dati in una casella di testo. Gli eventi possono essere attivati anche da fattori esterni ad Access, ad esempio eventi di sistema, oppure da macro o routine collegate ad altri eventi. Il database può diventare complesso se si aggiungono molte macro o routine a molte proprietà di eventi in molti oggetti. Nella maggior parte dei casi, tuttavia, è possibile ottenere i risultati desiderati usando una programmazione molto piccola.

Inizio pagina

Scegliere tra macro e codice VBA

La decisione di usare le macro, VBAo entrambe dipende principalmente da come si prevede di distribuire il database. Ad esempio, se il database è archiviato nel computer, si è l'unico utente e si ha familiarità con l'uso VBA del codice, si potrebbe decidere di usarlo VBA per la maggior parte delle attività di programmazione. Tuttavia, se si prevede di condividere il database con altri utenti da un file server, è consigliabile evitare di usarlo VBA a causa di problemi di sicurezza.

Basare la decisione di usare macro o VBA codice su due aspetti: sicurezza e funzionalità desiderate. La sicurezza è importante perché VBA può essere usata per creare codice che comprometta i dati o danneggi i file nel computer. Quando si usa un database creato da un altro utente, abilitare VBA il codice solo se si è certi che il database proviene da una fonte attendibile. Quando si crea un database che verrà usato da altri utenti, provare a evitare di includere strumenti di programmazione che richiedono all'utente di considerare esplicitamente attendibile il database. Le tecniche generali per evitare questo requisito vengono visualizzate più avanti in questa sezione.

Per proteggere il database, provare a usare le macro quando possibile e usarle VBA solo per operazioni che non possono essere eseguite con azioni di macro. Inoltre, provare a usare solo azioni di macro che non richiedono che il database venga considerato attendibile prima che possano essere eseguite. Limitare le azioni di macro in questo modo consente agli utenti di sentirsi sicuri che il database non abbia alcuna programmazione che potrebbe danneggiare i dati o altri file nei propri computer.

Considerazioni sulle macro

Access contiene molte azioni di macro che consentono di creare macro più potenti rispetto alle versioni precedenti di Access consentite. In questa versione è ad esempio possibile creare e usare variabili temporanee globali tramite azioni di macro e gestire gli errori in modo più efficace grazie alle nuove azioni di macro per la gestione degli errori. Nelle versioni precedenti di Access queste funzionalità erano disponibili solo in VBA. È anche possibile incorporare una macro direttamente nella proprietà evento di un oggetto o un controllo. Una macro incorporata diventa parte dell'oggetto o del controllo e rimane associata se l'oggetto o il controllo viene spostato o copiato.

Le macro consentono di gestire facilmente molte attività di programmazione, ad esempio aprire e chiudere maschere ed eseguire report. È possibile collegare rapidamente gli oggetti di database, ad esempio maschere e report, creati in quanto la sintassi da ricordare è poco. Gli argomenti relativi a ogni azione sono visualizzati nel Generatore di macro.

Oltre che per soddisfare le esigenze di maggiore sicurezza e facilità d'uso, è necessario usare le macro per eseguire le attività di programmazione seguenti:

  • Assegnare un'azione o un insieme di azioni a un tasto. A questo scopo è necessario creare un gruppo di macro denominato AutoKeys.

  • Eseguire un'azione o una serie di azioni alla prima apertura del database. A tale scopo, è necessario creare una macro denominata AutoExec.

    Nota

    La AutoExec macro viene eseguita prima di qualsiasi altra macro o VBA codice, anche se è stata designata una maschera di avvio nella finestra di dialogo Opzioni di Access e si è collegata una macro o VBA un codice all'evento o OnLoad alla OnOpen maschera.

Per altre informazioni su come creare macro, vedere Informazioni sulle macro.

Considerazioni su VBA

Usare VBA invece delle macro se si vuole eseguire una delle operazioni seguenti:

  • Usare funzioni predefinite o crearne di personalizzate. Access include molte funzioni predefinite, ad IPmtesempio , che calcola il pagamento di un interesse. È possibile usare queste funzioni per eseguire calcoli senza creare espressioni complesse. VBAUsando , è anche possibile creare funzioni personalizzate per eseguire calcoli che vanno oltre le funzionalità di un'espressione o per sostituire espressioni complesse. È infine possibile usare le funzioni create nelle espressioni per applicare un'operazione comune a più oggetti.
  • Creare o modificare oggetti. Nella maggior parte dei casi, è più semplice creare e modificare un oggetto nella visualizzazione Struttura dell'oggetto. In alcune situazioni, tuttavia, è consigliabile modificare la definizione di un oggetto nel codice. VBAUsando , è possibile modificare tutti gli oggetti in un database, nonché il database stesso.
  • Eseguire azioni a livello di sistema. È possibile eseguire l'azione RunApp in una macro per eseguire un altro programma, ad esempio Microsoft Excel, dall'interno di Access, ma non è possibile usare una macro per eseguire molte altre operazioni all'esterno di Access. VBAUtilizzando , è possibile verificare l'esistenza di un file nel computer, usare l'automazione o Dynamic Data Exchange (DDE) per comunicare con altri programmi basati su Microsoft Windows, ad esempio Excel, e chiamare le funzioni nelle librerie di collegamento dinamico di Windows (DLLs).
  • Modificare i record uno alla volta. È possibile eseguire VBA i passaggi di un set di record uno alla volta ed eseguire un'operazione su ogni record. Al contrario, le macro funzionano con interi set di record contemporaneamente.

Inizio pagina

Eseguire attività di programmazione comuni con la Creazione guidata Pulsante di comando

Quando si aggiunge un pulsante di comando a una maschera, è possibile usare la Creazione guidata Pulsante di comando per iniziare a programmare. La procedura guidata facilita la creazione di un pulsante di comando per l'esecuzione di un'attività specifica. In un file di Access (.accdb) la procedura guidata crea una macro incorporata nella OnClick proprietà del pulsante di comando. In un .mdb file o .adp file la procedura guidata crea VBA codice perché le macro incorporate non sono disponibili in questi formati di file. In entrambi i casi, è quindi possibile modificare o migliorare la macro o VBA il codice in base alle proprie esigenze.

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla maschera per la quale aggiungere il pulsante di comando e quindi scegliere Visualizzazione Struttura.

  2. Nella scheda Struttura maschera fare clic sulla freccia in giù per visualizzare la raccolta Controlli e quindi verificare che Usa creazioni guidate Controllo sia selezionato.

  3. Nella raccolta Controlli della scheda Struttura maschera fare clic su Pulsante.

  4. Nella griglia di struttura della maschera fare clic nel punto in cui si vuole inserire il pulsante di comando. Viene avviata la Creazione guidata Pulsante di comando.

  5. Nella prima pagina della procedura guidata fare clic su ogni categoria nell'elenco Categorie per visualizzare le azioni eseguibili dal pulsante di comando che è possibile programmare con la procedura guidata. Nell'elenco Azioni selezionare l'azione desiderata e quindi fare clic su Avanti.

  6. Fare clic sull'opzione Testo oppure sull'opzione Immagine, a seconda che nel pulsante di comando si voglia visualizzare testo o un'immagine.

    • Se si vuole visualizzare testo, è possibile modificare il testo presente nella casella accanto all'opzione Testo.
    • Se si vuole visualizzare un'immagine, verrà proposta automaticamente un'immagine inclusa nell'elenco. Se si vuole selezionare un'immagine diversa, selezionare la casella di controllo Mostra tutte le immagini per visualizzare un elenco delle immagini di tutti i pulsanti di comando disponibili in Access oppure fare clic su Sfoglia per selezionare un'immagine archiviata in un'altra posizione. Fare clic su Avanti.
  7. Immettere un nome significativo per il pulsante di comando. Questo passaggio è facoltativo e il nome non viene visualizzato sul pulsante di comando. Tuttavia, è consigliabile immettere un nome significativo in modo che, quando è necessario fare riferimento al pulsante di comando in un secondo momento, ad esempio quando si imposta l'ordine di tabulazione per i controlli della maschera, sia molto più facile distinguere i pulsanti di comando. Se il pulsante di comando chiude la maschera, ad esempio, è possibile assegnarle cmdClose un nome o CommandClose.

  8. Fare clic su Fine. Access inserisce il pulsante di comando nella maschera.

  9. Se vuoi vedere cosa è stato programmato automaticamente dalla procedura guidata, segui questi passaggi facoltativi:

    1. Se la finestra delle proprietà non è già visualizzata, premere F4 per visualizzarla.

    2. Fare clic sulla scheda Evento nella finestra delle proprietà.

    3. Nella casella della proprietà Al clic del mouse fare clic sul pulsante Genera .

      Access avvia il Generatore di macro e visualizza la macro creata dalla procedura guidata. Se si vuole, è possibile modificare la macro. Per altre informazioni, vedere Informazioni sulle macro. Al termine, nel gruppo Chiudi della scheda Struttura macro fare clic su Chiudi per chiudere il Generatore di macro. Se Access chiede di salvare le modifiche e aggiornare la proprietà, fare clic su per salvare le modifiche o su No per rifiutare le modifiche.

  10. Nel gruppo Visualizzazioni della scheda Struttura maschera fare clic su Visualizza e quindi su Visualizzazione Maschera. Fare clic sul nuovo pulsante di comando per verificare che funzioni come previsto.

Inizio pagina

Informazioni sulle macro

Una macro è uno strumento che consente di automatizzare le attività e aggiungere funzionalità a maschere, report e controlli. Ad esempio, se si aggiunge un pulsante di comando a una maschera, è possibile associare la proprietà evento del OnClick pulsante a una macro contenente i comandi che il pulsante deve eseguire ogni volta che viene selezionato.

È utile considerare le macro di Access come un linguaggio di programmazione semplificato in cui è possibile creare codice creando un elenco di azioni da eseguire. Per creare una macro, si selezionano le singole azioni da un elenco a discesa e per ogni azione si immettono le informazioni necessarie. Le macro consentono di aggiungere funzionalità a maschere, report e controlli senza scrivere codice in un VBA modulo. Le macro offrono un sottoinsieme dei comandi disponibili in VBAe per la maggior parte degli utenti è più facile creare una macro che scrivere VBA codice.

Per creare una macro, è necessario usare il Generatore di macro, illustrato nell'immagine seguente.

Per visualizzare il Generatore di macro:

  • Nel gruppo Macro e codice della scheda Crea fare clic su Macro.

Inizio pagina

Informazioni sul codice VBA

Analogamente alle macro, VBA consente di aggiungere l'automazione e altre funzionalità all'applicazione Access. È possibile estendere VBA l'applicazione usando controlli di terze parti e scrivere funzioni e procedure personalizzate per esigenze specifiche.

Un modo rapido per iniziare VBA consiste nel creare una macro di Access e quindi convertirla nel VBA codice. Le istruzioni per eseguire questa operazione sono incluse in Convertire le macro in codice VBA. Questa caratteristica crea un nuovo VBA modulo che esegue le operazioni equivalenti nella macro. Verrà aperto anche Visual Basic Editor, che consente di iniziare a modificare la procedura. Quando si lavora in Visual Basic Editor, è possibile fare clic su parole chiave e premere F1 per avviare la Guida di Access per sviluppatori e ottenere altre informazioni su ogni parola chiave. È quindi possibile esplorare la Guida di Access per sviluppatori e individuare nuovi comandi che consentono di eseguire le attività di programmazione desiderate.

Inizio pagina

Convertire macro in codice VBA

È possibile usare Access per convertire automaticamente le macro in VBA moduli o moduli di classe. È possibile convertire le macro collegate a una maschera o a un report, indipendentemente dal fatto che queste esistano come oggetti separati o macro incorporate. È anche possibile convertire macro globali non collegate a una maschera o a un report specifico.

Convertire macro collegate a una maschera o un report

Questo processo viene convertito in VBA qualsiasi macro a cui fa riferimento, o incorporato in una maschera o in un report, o in uno dei relativi controlli, e aggiunge il VBA codice al modulo di classe della maschera o del report. Il modulo di classe diventa parte integrante della maschera o del report con cui viene spostato, nel caso in cui la maschera o il report venga spostato o copiato.

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla maschera o sul report e quindi scegliere Visualizzazione Struttura.

  2. Nel gruppo Strumenti della scheda Struttura maschera fare clic su Converti le macro della maschera in Visual Basic o Converti macro del report in Visual Basic.

  3. Nella finestra di dialogo Converti macro maschera o Converti macro di report specificare se si vuole che Access aggiungere il codice di gestione degli errori alle funzioni generate. Se le macro includono commenti, specificare se includere o meno i commenti nelle funzioni. Fare clic su Converti per continuare. Se non esiste alcun modulo di classe per la maschera o il report, ne verrà creato uno automaticamente e verrà aggiunta una routine al modulo per ogni macro associata alla maschera o al report. Access modifica anche le proprietà evento della maschera o del report in modo da eseguire le nuove VBA routine invece delle macro.

  4. Per visualizzare e modificare il VBA codice:

    1. Mentre la maschera o il report è ancora aperto in visualizzazione Struttura, se la finestra delle proprietà non è già visualizzata, premere F4 per visualizzarla.

    2. Nella scheda Evento della finestra delle proprietà fare clic in una casella di proprietà che visualizza [Event Procedure]e quindi fare clic sul pulsante Genera . Per visualizzare le proprietà evento per un controllo specifico, fare clic sul controllo per selezionarlo. Per visualizzare le proprietà evento per l'intera maschera o report, selezionare Maschera o Report nell'elenco a discesa nella parte superiore della finestra delle proprietà.

      Access aprirà Visual Basic Editor e visualizzerà la routine evento nel relativo modulo di classe. È possibile scorrere verso l'alto o verso il basso per visualizzare eventuali altre routine incluse nello stesso modulo di classe.

Convertire macro globali

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sul nome della macro che si vuole convertire e quindi fare clic su Visualizzazione Struttura.

  2. Nel gruppo Strumenti della scheda Struttura macro fare clic su Converti macro in Visual Basic.

  3. Nella finestra di dialogo Converti macro selezionare le opzioni desiderate e quindi fare clic su Converti. Access converte la macro e apre Visual Basic Editor.

  4. Per visualizzare e modificare il VBA codice:

    1. In Visual Basic Editor, se il riquadro Explorer del progetto non è visualizzato, scegliere Explorer del progetto dal menu Visualizza.
    2. Espandere l'albero sotto il nome del database che si sta usando.
    3. In Moduli fare doppio clic sul Converted Macro-<macro name> modulo. Visual Basic Editor apre il modulo.

Collegare una funzione VBA a una proprietà evento

Quando si converte una macro VBAglobale in , il VBA codice viene inserito in un modulo standard. A differenza di un modulo di classe, un modulo standard non fa parte di una maschera o di un report. È probabile che si voglia associare la funzione a una proprietà evento in una maschera, in un report o in un controllo, in modo che il codice venga eseguito esattamente nel momento e nella posizione desiderati. A questo scopo, è possibile copiare il VBA codice in un modulo di classe e quindi associarlo a una proprietà evento oppure effettuare una chiamata speciale dalla proprietà evento al modulo standard usando la procedura seguente.

  1. In Visual Basic Editor prendere nota del nome della funzione. Ad esempio, se è stata convertita una macro denominata MyMacro, il nome della funzione sarà MyMacro().
  2. Chiudere Visual Basic Editor.
  3. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla maschera o sul report a cui si vuole associare la funzione e quindi scegliere Visualizzazione Struttura.
  4. Fare clic sul controllo o sulla sezione a cui associare la funzione.
  5. Se la finestra delle proprietà non è già visualizzata, premere F4 per visualizzarla.
  6. Nella scheda Evento della finestra delle proprietà fare clic sulla casella della proprietà evento alla quale si vuole associare la funzione.
  7. Nella casella della proprietà digitare un segno di uguale (=) seguito dal nome della funzione, =MyMacro()ad esempio . Assicurarsi di includere le parentesi.
  8. Salvare la maschera o il report facendo clic su Salva sulla barra di accesso rapido.
  9. Nel riquadro di spostamento fare doppio clic sulla maschera o sul report e controllare che il codice venga eseguito come previsto.

Ora conosci i passaggi di base per aggiungere VBA codice al database. Questo articolo descrive solo le nozioni di base su come iniziare. Molti eccellenti libri di riferimento e risorse online possono aiutarti a sviluppare le tue capacità di programmazione.

Vedere anche

Creare una macro di interfaccia utente

Eseguire una macro di Access mediante tasti di scelta rapida

Automatizzare gli eventi di avvio con una macro

Creare una macro che viene eseguita all'apertura di un database

Ordine degli eventi per gli oggetti di database

Inizio pagina