Newsgroup: it.comp.appl.access
Titolo: Barre dei menù

Ho deciso di modificare la mia applicazione fatta in Access 2000; vorrei
cioč sostituire i pulsanti creati nelle varie maschere con altrettanti
comandi inseriti in barre dei menů personalizzate.
La mia domanda č questa: č possibile associare delle routine evento ai
comandi dei menů personalizzati al pari dei pulsanti creati nelle maschere?
Grazie per l'aiuto e un saluto a tutto il newsgroup.
Rosario dall'ufficio.

 comandi dei menů personalizzati al pari dei pulsanti creati nelle
maschere?
Mi sembra di si, i pulsanti delle barre menů hanno un solo evento chiamato
OnAction, che avviene quando premi il pulsante.
Guardati l'help relativo all'insieme commandbars, puoi fare tutto da codice.
Max

 wrote in message 7Bl07.30969$u%1.23...@news1.tin.it...

Ti ringrazio per la risposta, ma io non sono riuscito a trovare l'evento di
cui tu parli, sicuramente č per la mia appena sufficiente conoscenza di
Access. Mi potresti dare maggiori chiarimenti?
Grazie e ciao da Rosario da casa.

 Grazie e ciao da Rosario da casa.
Spero di non dire fesserie perchè non lo ho provato, ma a quanto ho capito
ogni pulsante su una barra di menù ha una proprietà OnAction, essa è una
stringa che contiene il nome di una macro VB che viene eseguita quando premi
il pulsante.
Tratto dall'Help:
================
Proprietà OnAction
Restituisce o imposta il nome della macro di Visual Basic che verrà eseguita
quando l'utente modifica il valore o fa clic su un controllo della barra dei
comandi. Valore String di lettura/scrittura.
Nota   L'applicazione contenitore determina se il valore è un nome di macro
valido.
================
Si aplica anche a "Oggetto CommandBarButton"
Vedi anche l'help per  "Insieme CommandBars"
L'idea è che, da codice, quando ti serve fai:
crei una commandbars (la aggiungi all'insieme, col metodo AddNew), poi a
quella commandbar che hai creato (ti ci riferisci col nome che le hai dato)
aggiungi i pulsanti, e dopo averli aggiunti ne imposti pe proprietà.
Esempio:
Public Sub CreaPulsanteCompattazione()
Dim cm As CommandBar
On Error Resume Next
CommandBars.Add ("Compattazione")
Set cm = CommandBars("Compattazione")
cm.Protection = msoBarNoChangeDock + msoBarNoChangeVisible +
msoBarNoCustomize + msoBarNoHorizontalDock + msoBarNoMove + msoBarNoResize
'la barra non è resizabile, ne spostabile, ne dockabile... resta dove la
metti col codice
If cm.Controls.Count = 0 Then 'se non ha controlli aggiungo il mio bottone
  cm.Controls.Add msoControlButton, 2071 'uso l'ID del controllo del comando
di access per la compattazione
  cm.Controls(1).Enabled = True
  cm.Controls(1).Style = msoButtonCaption
  cm.Controls(1).Caption = "         6 - Compatta FrontEnd          "
End If
cm.Visible = True
cm.Top = 200 'posizione sullo schermo
cm.Left = 566
End Sub
In questo esempio non uso OnAction, in quanto faccio una copia di un comando
che esiste nei menù di access, e quindi devo usare l'ID del comando che
voglio copiare (2071 nel mio caso)
Il pulsante creato compatta il DB in uso.
La barra creata NON è spostabile, ne dockabile, ne resizabile, ne
chiudibile, ne..... resta sullo schermo fin che non la elimini con qualcosa
tipo:
Public Sub NascondiPulsanteCompattazione()
On Error Resume Next
CommandBars("Compattazione").Visible = False
CommandBars("Compattazione").Delete
End Sub
Max