Personalizzazione del Ribbon di Access 2007 (2)
Nel post precedente : Personalizzazione del Ribbon di Access 2007 (1) ho creato una nuova scheda per il Ribbon di Access utilizzando delle macro per le callbacks relative ai bottoni.
Nell'esempio di questo post, invece, ho utilizzato una subroutine creata in un modulo di VBA, che costituisce un'alternativa migliore e più flessibile alle macro.
Allo scopo, ho suddiviso la scheda del Ribbon in due gruppi: Reportistica e Inserimento dati.
Nel primo, ho lasciato i due comandi già presenti nell'allegato al post precedente; nel secondo, ho aggiunto un bottone per l'apertura di un semplice form di inserimento dati, mediante la callback InserisciStudenti.
La struttura xml è la seguente:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="GestioneGeneraleID" label="Gestione generale">
<group id="ReportisticaID" label="Reportistica">
<button id="RubricaStudenti" label="Rubrica Studenti" size="large" screentip="Elenco telefonico Studenti" supertip="elenco esportabile in excel" onAction="RubricaStudenti" imageMso="CreateReport" />
<button id="StudentiLivello" label="Studenti per livelloi" size="large" screentip="Elenco degli studenti" supertip="elenco esportabile in excel" onAction="StudentiLivello" imageMso="CreateReport" />
</group>
<group id="InserimentoDatiID" label="Inserimento Dati">
<button id="InserisciStudenti" label="Nuovi studenti" size="large" screentip="Aggiunta e modifica studenti" supertip="Consente l'immissione di nuovi studenti e la gestione di quelli esistenti" onAction="InserisciStudenti" imageMso="RecordsAddFromOutlook" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Successivamente, ho eseguito le seguenti operazioni:
- creazione di un nuovo modulo denominato CallBack;
- aggiunta del riferimento alla libreria Microsoft Office 12.0 Object Library;
- creazione della seguente public sub:
Public Sub InserisciStudenti(control As IRibbonControl)
DoCmd.OpenForm "InserisciStudenti"
End Sub
Ed ecco il risultato:
Errata corrige al post precedente
Riguardando il post precedente, mi sono accorta della mancanza di un'operazione fondamentale da eseguire per attivare il ribbon personalizzato, senza la quale, pur essendo tutto corretto, la nuova scheda non verrà visualizzata.
L'operazione mancante è costituita dall'attivazione della nuova scheda nel database corrente, mediante il valore del campo RibbonName della tabella USysRibbons:
- aprire il Menù Office;
- click su Opzioni di Access;
- click su Database corrente;
- nella sezione Barra multifunzione e barra degli strumenti, selezionare il nome del Ribbon (già presente in elenco);
- chiudere e riaprire il db

Come sempre, vi allego l'esempio completo.
Ciao a tutti
Laura