Opbouwen navigatiescherm afhankelijk van de gebruiker Access 2010

Status
Niet open voor verdere reacties.

linkav

Gebruiker
Lid geworden
13 jun 2007
Berichten
465
Beste,

Ik heb een programma dat start met een menu en afhankelijk van de gebruiker worden de menukeuze getoond.

Aan de linkerzijde van het scherm heb ik nu een 'vast' navigatiescherm. Kan ik dit in code aanpassen zodat ik dit ook afhankelijk van de gebruiker een ander navigatiescherm krijg?

Bedankt
 
Beste Ariane,

Wil je een compleet andere startpagina gebruiken voor verschillende gebruikers, of mogen bepaalde functies voor een gebruiker niet mogelijk zijn.

in het laatste geval kan je de betreffende knoppen ook uitschakelen, ze blijven dan zichtbaar, maar ze kunnen niet worden bediend, de code hiervoor:

DoCmd.OpenForm "FORMULIERNAAM"
Forms![FORMULIERNAAM]!KNOPNAAM.Enabled = False
 
Die code kan korter (ook al is het dummycode). En je wilt waarschijnlijk op basis van gebruikers rechten gaan werken, dus die moet je dan ook uitlezen. Dat doe je (uiteindelijk) met een Select Case. Iets als:
Code:
strMsg = " Toegang geweigerd" & vbCrLf _
    & "Neem contact op met de beheerder als het probleem zich herhaalt."
Select Case ValidUser
    Case 0, 1
        MsgBox strMsg, vbInformation, "Niet-geautoriseerde gebruiker"
        DoCmd.Close acForm, Me.Form.Name
    Case 2
        Select Case AccessLevel
            Case 1 ' lv1 menu
                Me.cmdOverzicht.Visible = True
                Me.cmdMagazijn.Visible = True
                Me.cmdRapporten.Visible = True
                Me.cmdDatabaseWindow.Visible = True
                Me.AllowAdditions = True
                Me.AllowEdits = True
            Case 2 ' lv2 menu
                Me.cmdOverzicht.Visible = True
                Me.cmdMagazijn.Visible = True
                Me.cmdRapporten.Visible = True
                Me.cmdDatabaseWindow.Visible = False
            Case 3 ' lv3 menu
                Me.cmdOverzicht.Visible = True
                Me.cmdMagazijn.Visible = False
                Me.cmdRapporten.Visible = False
                Me.cmdDatabaseWindow.Visible = False
            Case Else
                MsgBox strMsg, vbInformation, "Niet-geautoriseerde gebruiker"
        End Select
    Case Else
End Select
 
Allen,

Bedankt voor de reactie.

Maar het menu op zich is geen probleem. Afhankelijk van de groep waartoe een gebruiker hoort wordt uit een tabel de menukeuzes gehaald (1 record per keuze) en wordt zo het scherm opgebouwd. Zo krijgen ze in de winkel een totaal ander scherm (facturatie/offertes/....) als in de werkplaats waar ze enkel werkbonnen mogen aanmaken/wijzigen. In bijlage een voorbeeld.

Waar het om gaat is aan de rechterkant het navigatie-menu. Bij beide schermen is dit hetzelfde en is had dit ook flexibel opgebouwd, afhankelijk van de gebruiker. Zodat de gebruiker niet meer kan zien/kiezen dan de items waar hij rechten toe heeft.
 

Bijlagen

Het navigatiescherm toont de objecten die je hebt in de database. Die kun je, als je niet wilt dat iemand die ziet (en dat is eerlijk gezegd ook de meest handige optie) verbergen. Waarom? Omdat niemand daar iets te zoeken heeft. Alles wat een gebruiker zou mogen doen/zien, regel je op je startformulier(en). Als ik een db voor externen maak, dan wordt het navigatievenster dus altijd verborgen. Dat zou jouw probleem dus in een keer oplossen.
Een andere oplossing is er overigens niet; je kunt een object wel verbergen, maar niet met VBA.
 
Hallo,

Het voordeel van het navigatie-scherm is wel dat het steeds aan de linkerkant staat, in welk programma/menu je ook staat. Je hoeft niet eerst naar het hoofdscherm om een ander programma te openen. Maar als het niet mogelijk is... dan is dat heel spijtig....
 
Je hoeft niet eerst naar het hoofdscherm om een ander programma te openen.
Dát nu is een kwestie van een goed formulier bouwen :). Gebruikers hebben helemaal niets te zoeken in het navigatievenster. Die moet je daar dus ook helemaal geen toegang toe geven. Als beheerder is het een ander verhaal, maar zelfs een verborgen Navigatiepaneel is met één toets (F11) weer tevoorschijn te toveren. Dus ik blijf erbij: verbergen die handel :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan