Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

[ACC2010] Ribbon ausblenden

Begonnen von Salvation, Juni 17, 2011, 10:44:03

⏪ vorheriges - nächstes ⏩

Salvation

Hi,

ich hab ein kleines Problem, welches ich mir selbst nicht wirklich erklären kann.

Ich möchte für bestimmte User die Ribbons ausblenden. Ist nicht das Problem, sollte man annehmen. Nur komischer Weise blebdet er mir die Ribbons nicht komplett aus. Vertausche ist sie in meinem Code, da ich eine Abfrage auf die User habe, so verschwinden sie bei meinem Admin-Zugang, aber nicht bei den anderen.

Wie folgt schauen die beiden Teile aus:

Public Sub SetDatabaseWindow(pbVisible As Boolean)
  On Error GoTo SetDatabaseWindow_Err

  If pbVisible = True Then
    ' Datenbankfenster einblenden
    DoCmd.SelectObject acTable, , True
        ' Ribbon (ehem. Menü- & Symbolleite) einblenden
        ' Bei Access 2003 auskommentieren, da sonst eine Fehlermeldung erscheint
        DoCmd.ShowToolbar "Ribbon", acToolbarYes
  Else
    ' Datenbankfenster ausblenden
    DoCmd.SelectObject acTable, , True
        ' Ribbon (ehem. Menü- & Symbolleite) ausblenden
        ' Bei Access 2003 auskommentieren, da sonst eine Fehlermeldung erscheint
        DoCmd.ShowToolbar "Ribbon", acToolbarNo

    RunCommand acCmdWindowHide
  End If

SetDatabaseWindow_Exit:
  On Error GoTo 0
  Exit Sub

SetDatabaseWindow_Err:
  MsgBox "Fehler " & Err.Number & ": " & _
         Err.Description, vbCritical, _
         "modDiv.SetDatabaseWindow"
  Resume SetDatabaseWindow_Exit
End Sub



Die foldende Prozedur ist dann die Abfrage, in welcher Gruppe der User ist, welcher sich anmeldet.


Private Sub Form_Open(Cancel As Integer)
  OrderBy = "Name"
  OrderByOn = True
 
  'Datenbankfenster verstecken/ anzeigen
If AktBenutzerInGruppe("Gruppe1") Then
  'Ausblenden
  SetDatabaseWindow (False)
ElseIf AktBenutzerInGruppe("Gruppe2") Then
  'Ausblenden
  SetDatabaseWindow (False)
ElseIf AktBenutzerInGruppe("Gruppe3") Then
  'Ausblenden
  SetDatabaseWindow (False)
ElseIf AktBenutzerInGruppe("Gruppe4") Then
  'Ausblenden
  SetDatabaseWindow (False)
Else
  'Einblednen
  SetDatabaseWindow (True)
End If
End Sub



Wie gesagt, ich bekomme das Datenbankfester nicht mehr rein - vielleicht ist meins auch doppeltgemoppelt, ich weiss es nicht, nur unter Ribbon hab ich bisher Menü- und Symbolleiste gefunden und nicht Datenbankfenster - aber das Ribbon bekomme ich dann soweit noch angezeigt, dass ich DATEI - nur noch Drucken und Beenden - und START - eingeschränkt - nutzen kann.

Vertausche ich die Codeteile, so das unter TRUE einblenden und unter FALSE ausblenden steht, wird mir lediglich für den Admin das Ribbon ausgeblendet.

Leicht verwirrend, da ich es schon hinbekommen habe, aber derzeit meinen Fehler nicht finde. Ich habs nicht anders als vorher eingebaut. Vielleicht sieht ja von Euch jemand meinen Fehler.

Danke schonmal.

Salvation

database

Hallo,

Bei Access 2007 oder / und 2010 sollte das Datenbankfenster und deine Toolbars mit folgendem Code ein- und / oder ausgeblendet werden können:


Public Sub SetDatabaseWindow(pbVisible As Boolean)
 On Error GoTo SetDatabaseWindow_Err

 If pbVisible = True Then
   ' Datenbankfenster einblenden
   DoCmd.SelectObject acTable, , True
       ' Ribbon (ehem. Menü- & Symbolleite) einblenden
       ' Bei Access 2003 auskommentieren, da sonst eine Fehlermeldung erscheint
   DoCmd.ShowToolbar "Ribbon", acToolbarYes
 Else
   ' Datenbankfenster ausblenden
   DoCmd.NavigateTo "acNavigationCategoryObjectType" _
                                , "acNavigationGroupTables"
   DoCmd.SelectObject acTable, vbNullString, True
   DoCmd.RunCommand acCmdWindowHide

   DoCmd.ShowToolbar "Ribbon", acToolbarNo  

End If

SetDatabaseWindow_Exit:
 On Error GoTo 0
 Exit Sub

SetDatabaseWindow_Err:
 MsgBox "Fehler " & Err.Number & ": " & _
        Err.Description, vbCritical, _
        "modDiv.SetDatabaseWindow"
 Resume SetDatabaseWindow_Exit
End Sub



eine leichte Abwandlung des Code von Manuela Kulpa ... http://www.kulpa-online.com/tipps-access-allgemein-1025.html  ;)
...nach diesen Erkenntnissen:
http://www.office-loesung.de/ftopic155230_0_0_asc.php

Voraussetzung für die richtige Funktion ist halt auch das Ergebnis deiner User-Ermittlung, unabhängig davon aber funktioniert das Ding (getestet)
zu diesem Zweck folgenden Code in das Click-Ereignis eines Button am Formular:


Private Sub Befehl0_Click()
 
 'Datenbankfenster verstecken/ anzeigen
If MsgBox("ausblenden ?", vbYesNo) = vbYes Then
 'Ausblenden
 SetDatabaseWindow (False)
Else
 'Einblenden
 SetDatabaseWindow (True)
End If

End Sub


HTH

Salvation

Hi,

so ganz will der erste Quellcode nicht. Bekomme dabei wieder das Ergebnis, dass ich das Ribbon mit Datei und Start sichtbar bleibt. Wenn ich denn Test mache, wird mir beim Ausblenden alles ausgeblendet, also auch das Ribbon komplett.

Irgendwo gibt es sicherlich noch einen Hacken, den ich derzeit nicht sehe, aber ich suche weiter.

Vielen Dank.

Salvation

Salvation

#3
Kleine Info am Rande:

Mir ist eben aufgefallen, als ich das Ribbon (de)aktivieren in ein anderes Programm eingebaut habe - ohne Änderungen, das was ich eben vorher hatte - da funktioniert es, nur in dem einen Programm nicht.

Ich hab dann die Infos aus dem einen Programm wo es funktioniert in das Programm kopiert, wo es nicht funktioniert und es funktioniert weiterhin nicht.

Ziemlich verwirrdend das Ganze.

EDIT:
Nach langem hin und her und einigen versuchen, hab ich nun festgestellt, dass das kleine Testprogramm bei den Usern die in Gruppe4 sind, nicht klappt. Sprich, will ichs ausblenden lassen, bleibt es. Lediglich der Filter verschwindet dort dann, mehr aber nicht. Also liegt es wohl an irgendeiner Einstellung oder mit der Abfrage hängt es zusammen.