logo MC2 E-Learning S.a r.l.
Logo Einstein grigio sfumato
e = m x c al quadrato





Creare una barra menu maschere personalizzata con il VBA

Impariamo come creare una barra dei menu personalizzata con il VBA Visual Basic for Application







Dopo aver costruito una barra degli strumenti personalizzata, sarebbe anche utile (e coerente) sostituire la barra dei menu incorporata con una personalizzata.

Si potrà allora impostare la proprietà Barra menu delle maschere in modo che punti a questa barra dei menu.

Per esempio, la Barra Menu Libri nel database Libri, come si vede dalla figura sotto, ha un insieme limitato di comandi che corrisponde con le funzionalità della barra degli strumenti personalizzata descritta nel tutorial precedente.

Il menu personalizzato File nellaBarra Menu Libri elimina comandi che non servono, come per esempio Apri database,Nuovo database, Salva, Salva con nome/esporta e Proprietà database (figura 1).

Aprendo il menu File si può vedere che non sono disponibili nel menu personalizzato i comandi che non dovrebbero servire all’utente di un’applicazione, quali ad esempio Nuovo database.

Definire una nuova barra dei menu

Prima di Microsoft Access 97 (versione 8), per costruire una barra dei menu personalizzata non si poteva fare altro che ricorrere a una complessa serie di macro.

Occorreva una macro formata da azioni AggiungiMenu per definire una barra dei menu di base.

Servivano anche una macro addizionale per ciascun menu a discesa o sottomenu in quella barra dei menu.

Poteva essere necessaria anche una decina di macro solo per definire una barra dei menu personalizzata.

Access continua a supportare le macro AggiungiMenu per ragioni di compatibilità verso il basso, ma ora si può definire un menu usando l’ambiente di personalizzazione che abbiamo descritto nel paragrafo precedente.

Per diversi menu standard, quali Modifica, Inserisci, Record e Finestra, si può copiare il menu incorporato così come sta.

Uno dei vantaggi che si ottengono dal copiare menu incorporati sta nel fatto che si ottengono automaticamente eventuali comandi addizionali che compaiono in questi menu in situazioni particolari.

Per esempio, se si copia il menu incorporato Modifica mentre la focalizzazione è su un oggetto OLE, si vedranno i comandi per la modifica degli oggetti OLE in fondo al menu Modifica della barra dei menu personalizzata.

Se si dovessero costruire questi menu “a mano”, si dovrebbe in primo luogo mettere il focus su un controllo che attiva questi comandi prima di aprire la finestra di dialogo Personalizza e poi copiare i comandi dai menu Access incorporati. (No, quei comandi non si trovano nella categoria Modifica nella scheda Comandi.)

Seguendo questo approccio si ottiene comunque l’effetto desiderato di avere i comandi che compaiono soltanto quando il focus è su un oggetto appropriato.

Per fare un altro esempio, se si copia il menu incorporato Finestra, in fondo al menu Finestra personalizzato si ottiene l’elenco incorporato delle finestre aperte.

Per cominciare a costruire un menu personalizzato, controllare in primo luogo che la maschera frmLibriSemplice sia aperta in visualizzazione Maschera (questa presenta tutti i comandi incorporati nella barra dei menu incorporata.

Fare clic a destra su una qualsiasi barra dei menu o barra degli strumenti e selezionare Personalizza dal menu di scelta rapida.

Fare clic sul pulsante Nuova nella scheda Barre degli strumenti e nella finestra di dialogo Nuova barra degli strumenti attribuirle il nome Menu Libri.

Fare clic sul pulsante Proprietà e impostare il tipo su Barra menu.

Fare poi clic sulla scheda comandi della finestra di dialogo Personalizza e far scorrere fino in fondo l’elenco Categorie.

La barra dei menu personalizzata nel database Libri (Barra Menu Libri) usa i menu originali Modifica,Inserisci, Record e Finestra, ma hapersonalizzato imenu File, Visualizza, Strumenti e ? (Guida).

Per far corrispondere il nuovo menu con quello, selezionare la categoria Nuovo menu, che contiene una voce speciale per avviare un nuovo menu nella barra dei menu.

Trascinare il comando Nuovo menu dall’elenco Comandi e depositarlo quattro volte nella barra dei menu in costruzione, una per ciascuno dei menu personalizzati di cui si ha bisogno.

Fare clic a destra su ciascuna voce Nuovo menu per modificarne il nome in modo che diventi quello desiderato, come si vede nella figura sotto.

Aggiungendo unae commerciale (&) davanti a una lettera nel nome del menu si stabilisce il “tasto di scelta rapidaper quella voce di menu, proprio come accade quando si usa una e commerciale (detta in inglese ampersand) nella proprietà Etichetta di un’etichetta o di un pulsante di comando su una maschera.

Nella figura vediamo l’uso del comando Nuovo menu per impostore i menu personalizzati su una barra dei menu personalizzata (figura 2).

Non interessa personalizzare i menu incorporati Modffica, Inserisci, Record o Finestra, quindi si possono copiare dalla barra dei menu incorporata che si chiama Barra menu.

Badare a disporre i menu nello stesso ordine in cui compaiono nella barra menu standard di Access (File, Modifica, Visualizza, Inserisci, Record, Strumenti, Finestra, ?), in modo che l’applicazione sia coerente con ciò che l’utente è abituato a vedere in altre applicazioni.

Nel copiare i menu fare attenzione a tenere premuto il tasto Ctrl. Non facendolo, li si toglie dalla barra dei menu incorporata e li si mette soltanto in quella personalizzata.

Quando si copia un menu incorporato, Access non crea una copia indipendente dell’originale.

(Questo vale anche per qualunque pulsante di barra degli strumenti che si copi da una barra degli strumenti incorporata a una personalizzata.)

Per cui, se si copia un menu e se ne modificano alcune proprietà (per esempio si elimina uno dei comandi dal menu) si influisce anche sul menu incorporato.

E questa la ragione per cui occorre usare il comando Nuovo menu per costruire, in questo esempio, i menu personalizzati File, Visualizza, Strumenti e Guida (?). Se si copiassero gli originali e si eliminassero dalla copia i comandi non voluti, li si eliminerebbe anche dai menu incorporati.

Ora si possono aggiungere i comandi che si vogliono avere nei quattro menu personalizzati.

Questi comandi si possono copiare indifferentemente dall’elenco comandi o da un’altra barra dei menu.

Ricordare comunque di tenere premuto il tasto Ctrl quando si copia un comando da un altro menu, per essere sicuri di copiano e non di spostarlo.

Quando si trascina un comando nella barra dei menu e si resta col puntatore del mouse sospeso sopra uno dei comandi di menu, Access fa scendere la lista dei comandi attuali.

A questo punto si può scorrere il cursore lungo la lista. Access presenta una barra orizzontale sul menu a discesa, nel punto in cui piazzerebbe il comando se si rilasciasse in quel momento il pulsante del mouse.

Ci vuole certo un po’ di coordinamento fra mano e occhio, ma non è poi troppo difficile. Si può sempre afferrare un comando e spostarlo se lo si è deposto nel punto sbagliato.

Quando si copio un comando da un menu a un altro, Access reimposta la proprietà lnizia un gruppo di quel comando.

Potrebbe essere opportuno riportare questa proprietò all’impostazione precedente per i comandi che normalmente iniziano un gruppo, come il comando Zoom nel menu Visualizza.

Per creare la barra dei menu personalizzata nel database Libri occorrono i comandi Carica dati esterni, Chiudi, Salva come HTML, Imposta pagina, Anteprima stampa, Stampa, Invia ed Esci dal menu File; i comandi Foglio dati sottomaschera, Zoom e Pagine dal menu Visualizza; i comandi Controllo ortografia, Correzione automatica, Collegamento Office e Opzioni dal menu Strumenti.

Nel menu ? della barra dei menu Barra Menu Libri si possono trovare i comandi per Assistente Guida, Informazioni su Libri MS Press (che apre la maschera frmlnformazioniSu) e Informazioni su Microsoft Access.

Per far corrispondere con questo il nostro nuovo menu, andiamo alla categoria Tutte le maschere nella scheda Comandi della finestra di dialogo Personalizza e trasciniamo la maschera frmlnformazioniSu deponendola nella porzione a discesa del nostro menu ?.

Possiamo impostare il comando Assistente Guida copiando il comando Guida in linea di Microsoft Access dalla barra dei menu incorporata oppure possiamo scorrere fino alla categoria File nella scheda Comandi e scegliere il comando Aggiuntivo che sta in testa all’elenco.

Scegliendo il comando Aggiuntivo, possiamo andare poi al comando Guida in linea di Microsoft Access per copiarne l’immagine e incollarla, come si è descritto nel  tutorial precedente, nel paragrafo “Personalizzare la nuova barra degli strumenti”.

In questo modo verrà incollata l’icona dal comando di menu incorporato. Resta ancora da cambiare il testo per il comando da menu.

Per personalizzare ulteriormente il comando Assistente Guida, farvi sopra un clic col pulsante di destra del mouse e scegliere Proprietà dal fondo del menu di scelta rapida per visualizzare la finestra di dialogo Proprietà del controllo, come la si vede nella figura sotto.

Impostare la proprietà Azione in modo che punti alla funzione FormAssist, così che il comando del menu funzioni esattamente come il pulsante della barra degli strumenti che è stata creata prima (figura 3).

Per il comando frmlnformazioniSu, bisogna modificarne l’etichetta in modo che si legga “Informazioni su Libri ”.

Una volta concluso questo lavoro, si può mettere il nome della barra dei menu personalizzata nella proprietà Barra menu di ciascuna maschera che si vuole venga aperta visualizzando la barra dei menu personalizzata invece di quella incorporata.

Aprendo una maschera (ad esempio la maschera Libri) in visualizzazione Maschera si potranno vedere entrambe le barre personalizzate, quella dei menu e quella degli strumenti, più o meno come nella figura (figura 4).



Esempi di accesso ai dati con VBA Microsoft Access

Tutorials su Microsoft Access




Dr.Maurizio Cucchiara
autore del corso:
"Corso Base di Microsoft Access"
disponibile on line su questo sito
MC2 E-Learning S.a r.l.
Formazione per il Web
http://www.mc2.it/html/access.html


Cerca sul web con Google:


Google