Newsgroup: it.comp.appl.access
Titolo: Commandbars - VBA

salve a tutti, dobbiamo disabilitare alcune voci su un menu 
personalizzato da vba, purtroppo nè la guida in ilnea nè il 
visualizzatore oggetti nè google nè i nostri 4 manuali di access ci 
hanno aiutato; non riusciamo a ricavare un riferimento a una precisa 
voce di sottomenu  in modo da poterla disabilitare, per intenderci 
riusciamo a disabilitare "file->salva" ma non "strumenti->replica->crea 
replica" qualcuno sà indicare documentazione in proposito sul web?
grazie.


Solo in tedesco.
Ma in genere ci sono due metodi per ricavare il riferimento:
1. con index/posizione p.e. qc. come
Application.CommandBars("Menu Bar").Controls.Item(7). _
  Controls.Item(8).Controls.Item(2).Enabled = False
2. con il nome/caption
...
Application.CommandBars("Menu Bar").Controls("strumenti"). _
  Controls("replica").Controls("crea replica").Enabled = False
Se ci sono tre punti per un dialogo alla fine del caption come in
tedesco o inglese:
Application.CommandBars("Menu Bar").Controls("strumenti"). _
  Controls("replica").Controls("crea replica...").Enabled = False
-- 
HTH
Karl
*********
Access-FAQ 
http://www.donkarl.com/it
 

 ha scritto nel messaggio
news:9Mdxd.537390$35.22...@news4.tin.it...

La struttura CommandBar è complessa:
Dim cbCommandBarControl As Object 'CommandBarControl
cbCommandBarControl = Application.CommandBars("Menu
Bar").Controls("&Strumenti")
'Questo punta all'Insieme Strumenti del Menù principale.
'All'interno di questa classe ciclandola troverete l'elenco dei SubItem
    Dim cbc As Object 'CommandBarControl
    For Each cbc In cbCommandBarControl.Controls
        Debug.Print "Caption = "cbc.Caption
        Debug.Print "Id = "  = cbc.Id
        Debug.Print "Type = " = cbc.Type
    Next cbc
Trovata "Replica" che in realtà sarà "R&eplica" assegnate ad un oggetto
questo puntatore.
Ora l'oggetto in questione ti espone il suo subItem un CommandBarPopup
che iterandolo ti permette di trovare quello che cerchi....!
Questo è giusto per capire la struttura.
Un'alternativa è usare FindControl metodo di CommandBars
Set myControl = Application.CommandBars.FindControl _
(Type:=msoControlPopup, Tag:="&Crea Replica...")
myControl.Enabled=False
Non ho provato, mi sono limitato a leggere l'Help anch'io, ma chissà che
in tanti salti fuori la soluzione...!
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------


Alessandro, grazie per la dritta, FindControl è cervellotica, mi piace 
di più la prima soluzione che hai prospettato, ci avevamo provato senza 
successo, riproviamo e Ti facciamo sapere, purtroppo spesso la 
documentazione di microsoft lascia alquanto a desiderare.
Ciao.


Grazie Karl, chiedo scusa se rispondo in ritardo ma siamo stati 
impegnati nello sviluppo dell'applicazione  :)	noi tentavamo di creare 
una funzione per costruire dinamicamente i menu (a runtime); per ora ci 
siamo accontentati di costruirlo staticamente usando poi FindControl per 
aggiornare dinamicamente le impostazioni, le osservazioni Tue e di 
Alessadro sono state illuminanti in proposito   :)
Proveremo nei prossimi giorni e daremo un feedback.