2013-08-14 10 views
5

Poszukuję niezawodnej metody minimalizacji domyślnej wstążki paska narzędzi MSAccess podczas zdarzenia OnLoad().MSAccess - zminimalizować wstążkę Toolbar OnLoad()?

Zdaję sobie sprawę, może całkowicie ukryć pasek narzędzi, ale to nie jest dokładnie to, czego szukam robić - po prostu chcę, aby zminimalizować Wstążka:

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

Próbowałem kilka podejść, z mieszanym powodzeniem:

W programie Access 2010 & 2013 (VB7):

CommandBars.ExecuteMso "MinimizeRibbon" 

Wcześniejsze wersje:

SendKeys "^{F1}", False 

Obie te metody wydają się działać jako PRZESUNIĘCIE między sesjami. Czy istnieje metoda określenia bieżącego stanu, a następnie zastosowania odpowiedniego kodu?

mam użytkownikom dostęp: 2007, 2010, 2013

Dzięki za wszelkie sugestie!

Mark

Odpowiedz

4

Sprawdź tę odpowiedź w witrynie MSDN. Dzieli na kilka sposobów, w tym próbną bazę danych.

E.G. W programie Access 2010 można zmienić stan wstążka z:

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

On łączy w ciągu:

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

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

podstawie czego dostęp jest używany, możesz użyć różnych funkcji.

Biorąc to od - 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

Idealny! Wykrywam wersję Access i RibbonState, a następnie używam odpowiedniego polecenia ExecuteMSO lub sendKeys. Uwaga "Przypadek 15" wymagany do wykrycia MSAccess 2013. –

+0

Będę edytować moją odpowiedź, aby to pokazać. Cieszę się, że się udało! – Elias

6

Oto fragment mojego 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

'Jeśli accVer> 13 Then' - accVer posiada tutaj ciąg – immibis

7

Access 2010 wersję i powinno się to zrobić w formie rozruchu. Jeśli użyjesz TYLKO linii ExecuteMso, to za każdym razem, gdy otworzy się formularz, przekieruje twoją Wstążkę. Aby zawsze minimalizować Wstążkę podczas uruchamiania, używam następującego kodu.

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

Hope this helps niektórzy który szuka odpowiedzi na to jak ja

Dave

0

prostu przeniósł Access 2016. Moja baza danych używa kodu podobnego do przewidzianego przez Dave Stuart. Wygląda na to, że zminimalizowana wstążka ma teraz wysokość "102", więc użyliśmy jej (np.):

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