access disabilitare o abilitare la ribbon

Anonimo
2021-10-17T10:15:29+00:00

Ciao, ho creato una ribbon personalizzata.

Vorrei capire se è possibile abilitarla o disabilitarla completamemente più volte.

Per disabilitarla intendo tutti i pulsanti contemporaneamente.

Ho provato ad utilizzare il comando

myribbon.Invalidate

ma non ha funzionato.

Lo scopo è quello, che una volta entrato nella maschera, tutti i pulsanti si devono disabilitare, mentre all'uscita si devono tutti riabilitare.

Ho provato a nascondere e far riattivare la ribbon con il comando

DoCmd.ShowToolbar "Ribbon", acToolbarNo (Yes)

e il tutto funziona ma non mi piace l'effetto scenico.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
domenico laurenza 9,900 Punti di reputazione Moderatore volontario
2021-10-18T11:11:24+00:00

Ciao,

Potresti anche definire la maschera di tipo popup senza gestire la ribbon.

Mimmo

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2021-10-18T14:36:33+00:00

    Ciao,

    l'istruzione myribbon.Invalidate serve solo per "ricalcolare" i controlli della Ribbon.

    Per abilitare o disabilitare i controlli devi utilizzare la funzione di richiamata getEnabled.

    <button id="btnModificaAnagrafica"

    label="Modifica"

    imageMso="AutoFormatGallery"

    screentip="Modifica anagrafica."

    supertip="Consente l'aggiornamento dei dati anagrafici del medico selezionato."

    onAction="onActionModificaAnagrafica"

    size="large"

    getEnabled="onGetEnabled"/>

    Public Sub onGetEnabled(control As IRibbonControl, Optional ByRef enabled)

    enabled = True

    If glbProfiloUtente = 3 Then

    If control.Id = "btnIncarichiCodici" Or _

    control.Id = "btnSpecializzazioniCodici" Or _

    control.Id = "btnOrdiniCodici" Or _

    control.Id = "btnTitoloStudioCodici" Or _

    control.Id = "btnTipoDocCod" Then

    enabled = False

    End If

    End If

    If glbProfiloUtente = 5 Then

    If control.Id = "btnContratti" Then

    enabled = True

    End If

    End If

    End Sub

    Ciao Mimmo

    Ciao Mimmo grazie per la tua risposta che è stata fondamentale.

    ho fatto in questo modo ho due pulsanti con un tag perchè ognuno deva aprire una maschera diversa:

    &lt;tab id="home" label="home"&gt;
    
    	&lt;group id="Group1" label="Group 1"&gt;
    
    		&lt;button id="MainMenu" label="Main Menu" imageMso="BlogHomePage" 
    
    		      tag="frmMainMenu" onAction="ribOpenForm" getEnabled="ControlEnabled"
    
      		      size="large" supertip="Open the Main Menu"/&gt;
    
    		&lt;button id="FormText" label="formatted Text" imageMso="FormatTextMore" 
    
    			tag="frmformattedText" onAction="ribOpenForm" getEnabled="ControlEnabled"
    
    			size="large" supertip="Open the form for formatted text "/&gt;
    
    	&lt;/group&gt;
    

           </tab>

    poi ho aperto la getEnabled:

    Public Sub ControlEnabled(control As IRibbonControl, ByRef enabled)

    If visibilita = 1 Then

      If control.ID = "MainMenu" Or control.ID = "FormText" Then 
    
            enabled = False 
    
      End If 
    

    End If

    If visibilita = 0 Then

      If control.ID = "Mainmenu" Or control.ID = "FormText" Then 
    
         enabled = True 
    
      End If 
    

    End If

    End Sub

    e nelle due maschere su eventi carico e scarico delle maschere ho variato la variabile visibilita dando rispettivamente 1 e 0 e dopo ogni scelta ho inseriti myribbon.Invalidate per lanciare la soubroutine.

    Volevo approfittare della tua gentilezza, chiedendoti:

    1. C'è un altro modo più semplice per fare quello che ho fatto
    2. Se ho 20 pulsanti che devo disabilitare devo inserire l'istruzione

    If control.Id = "botton1" Or _

     control.Id = "botton2" Or \_
    

    ..........

    control.id="botton20" then
    

    Non c'è un modo per disabilitare la barra con una sola istruzione?

    In altre parole vorrei usare la ribbon come menu e disabilitare essa ogni volta che entro in una maschera.

    All'uscita della maschera riabilitare la ribbon

    Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  2. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2021-10-17T17:27:41+00:00

    Ciao,

    l'istruzione myribbon.Invalidate serve solo per "ricalcolare" i controlli della Ribbon.

    Per abilitare o disabilitare i controlli devi utilizzare la funzione di richiamata getEnabled.

                      &lt;button id="btnModificaAnagrafica" 
    
                             label="Modifica" 
    
                             imageMso="AutoFormatGallery" 
    
                             screentip="Modifica anagrafica." 
    
                             supertip="Consente l'aggiornamento dei dati anagrafici del medico selezionato." 
    
                             onAction="onActionModificaAnagrafica" 
    
                             size="large" 
    
                             **getEnabled**="onGetEnabled"/&gt;
    

    Public Sub onGetEnabled(control As IRibbonControl, Optional ByRef enabled)

    enabled = True 
    
    If glbProfiloUtente = 3 Then 
    
       If control.Id = "btnIncarichiCodici" Or \_ 
    
          control.Id = "btnSpecializzazioniCodici" Or \_ 
    
          control.Id = "btnOrdiniCodici" Or \_ 
    
          control.Id = "btnTitoloStudioCodici" Or \_ 
    
          control.Id = "btnTipoDocCod" Then 
    
          enabled = False 
    
       End If 
    
    End If 
    
    If glbProfiloUtente = 5 Then 
    
       If control.Id = "btnContratti" Then 
    
          enabled = True 
    
       End If 
    
    End If 
    

    End Sub

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento