ACCESS: Aprire una maschera dalla barra multifunzione personalizzata creata con i Ribbons

Anonimo
2025-04-03T11:23:07+00:00

Buongiorno,

ho provato a creare una barra multifunzione personalizzata seguendo le istruzioni riportate quì:

https://support.microsoft.com/it-it/topic/create-una-barra-multifunzione-personalizzata-in-access-45e110b9-531c-46ed-ab3a-4e25bc9413de#:~:text=la%20procedura%20seguente%3A-,Fare%20clic%20su%20File%20>%20Opzioni.,idMso%20del%20controllo%20tra%20parentesi.

ed ha funzionato perfettamente.

Ora però il problema è creare un codice XML che con il bottone mi apra un'altra maschera di ricerca.

Ho provato a cercare e leggere in giro per il Web ma mi sembra di capire che senza il richiamo con codice VBA nel Modulo principale ciò non è possibile.

Nel mio caso io non ho nella barra laterale i Moduli.

In passato avevo creato il modulo generale di tutto il DB ma poi mi venivano bloccate le variazioni di Query, Maschere etc, pertanto dovendo modificare diverse volte in corso dell'anno il Maschere e DB ed essendoci molti dati importanti ho evitato di crearlo per evitare che ciò riaccada.

Esiste un modo semplice per aprire una maschera utilizzando solo i Ribbons o al massimo un codice semplice ed esclusivo per quel Ribbon evitando di codificare tutto il DB ?

Microsoft 365 e Office | Accesso | 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. Per proteggere la privacy, i profili utente per le domande di cui è stata eseguita la migrazione vengono resi anonimi.

0 commenti Nessun commento
{count} voti
Risposta accettata
  1. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2025-04-05T10:51:38+00:00

    Con Debug->Compila viene verificato tutto il codice VBA presente nel DB.

    Ad ogni modifica del codice ti conviene sempre ripeterlo.

    Altra funzionalità che ti conviene utilizzare dopo aver effettuato qualsiasi modifica nel DB è il Compatta e ripristina.

    Se ritieni che una o più risposte abbia risolto il tuo problema, segnala come tale. Così facendo aiuterai altri utenti nella ricerca di soluzioni ad un problema simile.

    Ciao e grazie

    Mimmo

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
Risposta accettata
  1. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2025-04-03T16:23:21+00:00

    Ciao,

    l'unico codice VBA che devi scrivere è quello che ti apre la form.

    Ad esempio se nella Ribbon hai il pulsante (button) definito con:

    onAction="OnActionObiettivi"

    dovrai avere solo una funzione (in un modulo):

    Function onActionObiettivi(control As IRibbonControl)

    DoCmd.OpenForm "frm\_Obiettivi", acNormal, , , acFormPropertySettings 
    

    End Function

    Mimmo

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

10 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2025-04-03T13:27:37+00:00

    La risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o parole insolite.

    Ciao Ferta2014,

    Se si preferisce non riscrivere l'intero database utilizzando XML, è possibile utilizzare il metodo CommandBars.Add. In questo modo si ottiene un'alternativa semplice per l'aggiunta dinamica di pulsanti alla barra multifunzione. Per aprire i moduli, è sufficiente impostare la proprietà CommandBarButton.OnAction. Vedere il codice VBA di seguito:

    Sub AddButtonToRibbon()
        Dim cbRibbonTab As CommandBar
        Dim cbbOpen As CommandBarButton
        
        On Error Resume Next
        
        Set cbRibbonTab = CommandBars.Add("Custom", Temporary:=True)
        Set cbbOpen = cbRibbonTab.Controls.Add(msoControlButton)
        
        ' /* Add a button. */
        With cbbOpen
            .Style = msoButtonIconAndCaption
            .Caption = "Open"
            .OnAction = "Button_Click"
            .FaceId = 8
            .Visible = True
        End With
        
        ' Display the Add-ins tab.
        cbRibbonTab.Visible = True
        
        Set cbbOpen = Nothing
        Set cbRibbonTab = Nothing
    End Sub
    
    Sub Button_Click()
        ' Open the Form (change the name if necessary).
        DoCmd.OpenForm "Attendance"
    End Sub
    
    Sub DeleteAddinsTab()
        On Error Resume Next
        
        CommandBars("Custom").Delete
    End Sub
    

    0 commenti Nessun commento
  2. Anonimo
    2025-04-03T14:34:36+00:00

    La risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o parole insolite.

    Ciao Ferta2014,

    Se si preferisce non riscrivere l'intero database utilizzando XML, è possibile utilizzare il metodo CommandBars.Add. In questo modo si ottiene un'alternativa semplice per l'aggiunta dinamica di pulsanti alla barra multifunzione. Per aprire i moduli, è sufficiente impostare la proprietà CommandBarButton.OnAction. Vedere il codice VBA di seguito:

    Sub AddButtonToRibbon()
        Dim cbRibbonTab As CommandBar
        Dim cbbOpen As CommandBarButton
        
        On Error Resume Next
        
        Set cbRibbonTab = CommandBars.Add("Custom", Temporary:=True)
        Set cbbOpen = cbRibbonTab.Controls.Add(msoControlButton)
        
        ' /* Add a button. */
        With cbbOpen
            .Style = msoButtonIconAndCaption
            .Caption = "Open"
            .OnAction = "Button_Click"
            .FaceId = 8
            .Visible = True
        End With
        
        ' Display the Add-ins tab.
        cbRibbonTab.Visible = True
        
        Set cbbOpen = Nothing
        Set cbRibbonTab = Nothing
    End Sub
    
    Sub Button_Click()
        ' Open the Form (change the name if necessary).
        DoCmd.OpenForm "Attendance"
    End Sub
    
    Sub DeleteAddinsTab()
        On Error Resume Next
        
        CommandBars("Custom").Delete
    End Sub
    

    Immagine

    No, forse mi sono spiegato male,

    è il contrario, io voglio evitare il Codice VBA totale non i Ribbons XML

    Voglio creare i Ribbons in Xml e creare SOLO il Sub codice Docmd.open.form senza che ci sia il Modulo VBA (Modulo1) di tutto il DB.

    Si può fare ?

    0 commenti Nessun commento
  3. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni