CISA FotoGallery

Statistiche

Tot. visite contenuti : 923007
Home Articoli tecnici HowTo Creare una barra dei menu personalizzata

Creare una barra dei menu personalizzata

(SV e MA)

In access è possibile creare delle barre menu proprie.
Queste barre possono quindi essere sia "Barra Menù" tout court, che "Barra degli Strumenti", che "Popup" e quindi visualizzarle come menù contestuali col tasto destro.

Partiamo col dire che ci sono macro e query di creazione menù, ma quello che a noi interessa è invece crearle in maniera visuale.

Cominciamo col dire che le barre personalizzate sono importabili da altri db:
->File
->Carica dagli esterni
°Importa
°Opzioni
°Menu e Barre degli strumenti

Mettiamoci al lavoro.
Strumenti..
Personalizza..
Avremo tutte le barre di default e quelle personalizzate per quel db.
°Barre degli strumenti
°Nuova
Scegliamo il nome (per es. "barMioMenu")
Ci verrà restituita una barra vuota da personalizzare.

Tralasciamo la possibilità di inserire pulsanti di altri menù, che potremmo voler raccogliere in una sola barra menù, e concentriamoci su come fare per lanciare nostre funzioni.

L'intento di questo articolo è quindi quello di voler riusare la stessa barra dei menu (ed in particolare lo stesso pulsante) nella maschera frmForzaNapoli ed in quella frmLaJuveNoncipiace e far uscire una Msgbox nella prima e chiudere il programma nella seconda.

Partiamo con la segnalazione di un bug in A2000: se noi da una barra lanciamo direttamente una funzione, Access la lancia tre volte. E' un bug documentato. Questo accade però se la funzione viene memorizzata in un modulo di classe di una maschera. Se la ns. funzione viene invece memorizzata in un modulo standard questo non accade. Vedi.

In ogni caso procediamo con un approccio diverso e probabilmente più flessibile.
Creiamoci la funzione FctTifosi in cui mettiamo il Msgbox, e subito dopo creiamo la funzione FctSportivi in cui mettiamo la chiusura del programma.

Creiamoci poi una macro (volendo possiamo usare anche una macro Autokeys per l'associazione ai tasti funzione) e come "Nome Macro" ci mettiamo il tasto che ci interessa tra parentesi graffe {F10}; come condizione invece ci mettiamo;
[Screen].[ActiveForm].[Name] = "frmTifosi" su di un rigo
e senza ripetere {F10} scriviamo
[Screen].[ActiveForm].[Name]= "frmLaJuveNoncipiace".
In entrambi i casi mettiamo come azione "EseguiCodice" e come argomento nel primo caso
FctTifosi()
e nel secondo
FctSportivi().

Il più è fatto.
Se andiamo nelle proprietà della barra, possiamo decidere la natura della barra:
-Barra Menù, se vogliamo lasciare nella maschera solo quella barra (ricordiamo che le maschere devono avere assolutamente una barra dei menu)
-Barra Strumenti, se vogliamo aggiungere questa barra a quella esistente di default o ad una nostra (una maschera può non avere una barra degli strumenti)
-Barra Popup, se vogliamo sostuire il menù contestuale di default con uno nostro per determinati oggetti, ad es. maschere o sottomaschere o report (ricordiamo che il runtime di Access non ha i menu contestuali e se quindi vogliamo ordinare o filtrare una sottomaschera dovremo crearci noi il menù popup)

Sceglieremo poi l'ancoraggio, la possibilità di modificare e la visualizzazione della barra (icone, didascalie, etc..)

Non ci resta che associare la barra alla maschera.
Lo possiamo fare di default scegliendo nell proprietà della maschera, inserendo il nome della barra nelle voci
°Barra Menu
°Barra degli strumenti
°Barra Menu scelta rapida

oppure via codice (per es. se abbiamo più barre degli strumenti)


DoCmd.ShowToolbar "BarMioMenu", acToolbarYes
e
DoCmd.ShowToolbar "MenuBar", acToolbarNo

per disattivare quella di default .

Nota Mentre le prime barre Menu e strumenti sono facilmente richiamabili per la successiva personalizzazione con
Strumenti..
Personalizza..
le barre popup non compaiono nell'elenco.

Per averle e quindi modificarle ci basterà:

Application.CommandBars("miopopup").ShowPopup

Le barre menu e VBA
In VBA gli oggetti, le proprietà ed i metodi dell'insieme CommandBars possono essere utilizzati per gestire le nostre Barre di Comando. Nel modello dell'oggetto Barre di Comando, ciascun menu è un oggetto CommandBar. Se per un'applicazione abbiamo una barra di comando personalizzata, possiamo da codice gestirla attivando o disattivando i controlli sulla barra a seconda delle necessità. E' possibile gestire dalle barre di comando anche le proprietà dei controlli di una maschera. Si allega un demo che mostra tali caratteristiche. Una più ampia e completa trattazione dell'argomento si trova in Barre Menu, Barre Strumenti, e di Scelta Rapida al Cap. 1° di Microsoft Access: Costruire Applicazioni con Maschere e Report.Vedi

Attachments:
Download this file (207.zip)Allegato153 Kb