2013-08-14 23 views
5

Tôi đang tìm một phương pháp đáng tin cậy để giảm thiểu băng thanh công cụ MSAccess mặc định trong sự kiện OnLoad().MSAccess - Giảm thiểu thanh công cụ Ribbon OnLoad()?

Tôi nhận ra hoàn toàn có thể ẩn các thanh công cụ, nhưng đó không phải là chính xác những gì tôi đang tìm cách để làm - Tôi chỉ muốn giảm thiểu băng:

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

Tôi đã thử một vài phương pháp tiếp cận, với thành công hỗn hợp:

Trong Access 2010 & 2013 (VB7):

CommandBars.ExecuteMso "MinimizeRibbon" 

phiên bản trước:

SendKeys "^{F1}", False 

Cả hai cách tiếp cận này dường như hoạt động như một lượt chuyển đổi giữa các phiên. Có phương pháp nào để xác định trạng thái hiện tại và sau đó áp dụng mã thích hợp không?

Tôi có người dùng có quyền truy cập: 2007, 2010, 2013

Cảm ơn mọi đề xuất!

Đánh dấu

Trả lời

4

Kiểm tra câu trả lời này trên MSDN. Ông chia sẻ một vài cách khác nhau để đi về nó, bao gồm một cơ sở dữ liệu mẫu.

E.G. Trong Access 2010, bạn có thể thay đổi trạng thái Ribbon với:

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

Ông liên kết bên trong:

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

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

Dựa trên những gì truy cập đang được sử dụng, bạn có thể sử dụng các chức năng khác nhau, có lẽ.

Lấy này từ - 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

Hoàn hảo! Tôi phát hiện phiên bản Access và RibbonState, sau đó sử dụng lệnh apporpriate ExecuteMSO hoặc sendKeys. Lưu ý "Trường hợp 15" cần thiết để phát hiện MSAccess 2013. –

+0

Tôi sẽ chỉnh sửa câu trả lời của mình để hiển thị điều đó. Happy nó đã làm việc! – Elias

6

Dưới đây là một đoạn implementaion của tôi:

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

'Nếu accVer> 13 Sau đó' - accVer giữ một chuỗi ở đây – immibis

7

truy cập phiên bản năm 2010 và lên bạn nên làm điều này trong hình thức khởi động của bạn. Nếu bạn chỉ sử dụng dòng ExecuteMso CHỈ, nó sẽ TẮT Ruy-băng của bạn mỗi khi biểu mẫu đó mở ra. Để luôn thu nhỏ Ribbon khi khởi động thì tôi sử dụng đoạn mã sau.

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

Hy vọng điều này giúp một số người đang tìm kiếm câu trả lời cho bản thân mình này như

Dave

0

Chỉ cần di chuyển để truy cập cơ sở dữ liệu năm 2016. Mỹ sử dụng mã tương tự như cung cấp bởi Dave Stuart. Có vẻ như băng thu nhỏ tối thiểu hiện có chiều cao '102', do đó đã sử dụng (ví dụ:):

If CommandBars("ribbon").Height > 120 Then 
    CommandBars.ExecuteMso "MinimizeRibbon" 
End If 
Các vấn đề liên quan