2013-08-14 34 views
5

Sto cercando un metodo affidabile per ridurre al minimo il nastro barra degli strumenti MSAccess predefinito durante l'evento OnLoad().MSAccess - Riduci a icona la barra degli strumenti OnLoad()?

Mi rendo conto che può completamente nascondere la barra degli strumenti, ma non è esattamente quello che sto cercando di fare - Voglio solo di ridurre al minimo il nastro:

DoCmd.ShowToolbar "Ribbon", acToolbarNo 'Hides the full toolbar 
DoCmd.ShowToolbar "Ribbon", acToolbarYes 'Show 

Ho provato un paio di approcci, con alterne fortune:

In Access 2010 & 2013 (VB7):

CommandBars.ExecuteMso "MinimizeRibbon" 

versioni precedenti:

SendKeys "^{F1}", False 

Entrambi questi approcci sembrano funzionare come un TOGGLE tra le sessioni. Esiste un metodo per determinare lo stato corrente e quindi applicare il codice appropriato?

Ho utenti con accesso: 2007, 2010, 2013

Grazie per qualsiasi suggerimento!

Mark

risposta

4

Partenza questa risposta su MSDN. Condivide alcuni modi diversi per farlo, incluso un database di esempio.

E.G. In Access 2010 si può modificare lo stato del nastro con:

CommandBars.ExecuteMso "MinimizeRibbon" 

http://social.msdn.microsoft.com/Forums/office/en-US/2f0d95a8-ed5f-4007-831d-05ef7e7a4263/minimize-the-ribbon-at-access-startup-using-vba

Egli collega entro:

http://www.accessribbon.de/en/index.php?FAQ:19

http://www.accessribbon.de/en/index.php?Downloads:15

In base a quanto l'accesso viene utilizzato, potresti usare diverse funzioni, forse.

Prendendo questo da - http://windowssecrets.com/forums/showthread.php/142262-How-to-find-Access-version-in-code:

Public Function AccessVersionID() As String 


    Select Case SysCmd(acSysCmdAccessVer) 
    Case 7: AccessVersionID = "95" 
    Case 8: AccessVersionID = "97" 
    Case 9: AccessVersionID = "2000" 
    Case 10: AccessVersionID = "2002" 
    Case 11: AccessVersionID = "2003" 
    Case 12: AccessVersionID = "2007" 
    Case 13: AccessVersionID = "Pirated!" 
    Case 14: AccessVersionID = "2010" 
    Case 15: AccessVersionID = "2013" 
    Case Else: AccessVersionID = "Unknown" 
    End Select 

End Function   'AccessVersionID() 
+1

Perfetto! Rilevo la versione di Access e RibbonState, quindi utilizzo il comando ExecuteMSO o sendKeys appropriato. Nota "Caso 15" necessario per rilevare MSAccess 2013. –

+0

Modificare la mia risposta per mostrarlo. Felice ha funzionato! – Elias

6

Ecco un frammento del mio implementaion:

Select Case SysCmd(acSysCmdAccessVer) 
    Case 7: accVer = "95" 
    Case 8: accVer = "97" 
    Case 9: accVer = "2000" 
    Case 10: accVer = "2002" 
    Case 11: accVer = "2003" 
    Case 12: accVer = "2007" 
    Case 13: accVer = "Pirated!" 
    Case 14: accVer = "2010" 
    Case 15: accVer = "2013" 
    Case Else: accVer = "Unknown" 
End Select 

RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100) 

Select Case RibbonState 
    Case True 
     'Do nothing, already minimized 
    Case False 
     If accVer > 13 Then 
      CommandBars.ExecuteMso "MinimizeRibbon" 
     Else 
      SendKeys "^{F1}", False 
     End If 
End Select 
+2

'Se accVer> 13 Then' - accVer contiene una stringa qui – immibis

7

Access versione 2010 e fino si dovrebbe fare questo nel vostro modulo di start-up. Se si utilizza SOLO la linea ExecuteMso, si aggancia la barra multifunzione ogni volta che si apre tale modulo. Per minimizzare sempre la barra multifunzione all'avvio, utilizzo il seguente codice.

If CommandBars("ribbon").Height > 100 Then 
    CommandBars.ExecuteMso "MinimizeRibbon" 
End If 

Spero che questo aiuti un po 'che sta cercando la risposta a questa come me

Dave

0

Appena trasferita a Access 2016. Il mio database utilizza il codice simile a quello fornito da Dave Stuart. Sembra che il nastro minimizzato ora abbia l'altezza di "102", quindi è stato utilizzato (ad es.):

If CommandBars("ribbon").Height > 120 Then 
    CommandBars.ExecuteMso "MinimizeRibbon" 
End If 
Problemi correlati