Inloggen: knoppen zichtbaar afhankelijk waarde tabel

Status
Niet open voor verdere reacties.

Mark Boerkamp

Gebruiker
Lid geworden
13 mrt 2010
Berichten
70
Hoi,

Ik heb een login gevonden hier op Helpmij en deze enigszins aangepast, aan de hand van het access level in de tabel users wordt nu bepaald of een knop zichtbaar is of niet.

Alleen ik wil niet dat dit in de VBA code wordt vastgelegd of de knop zichtbaar is of niet, wat ik graag zou willen is dat aan de hand van de waarde in de tabel autorisatie de knop wordt
weergegeven of niet, de bedeoeling hierachter is dat als een autorisatie moet worden aangepast dit in een formulier gedaan kan worden ipv de code te moeten aanpassen.

Kan iemand mij opweg helpen om de code aan te passen zodat deze en naar het access level kijkt en naar de waarde in de autorisatie tabel ?

Alvast bedankt !

Groeten,
Mark

Bekijk bijlage CCHM.rar
 
Code aanpassen? Je geeft zelf al aan dat je de Access levels in een tabel vastlegt. Dan heb je toch al wat je wilt?
 
Misschien wat verwarrend omdat ik de naam access level in 2 tabellen gebruik, ik leg inderdaad de access levels in een autorisaie tabel vast maar als het frm_switchboard opent wordt nu alleen naar de waarde in user tabel gekeken en niet naar de waarde in de autorisatie tabel.

Dit gedeelte bepaald nu of een knop zichtbaar is voor een access level:

Code:
Select Case ValidUser
    Case 0, 1
        strMsg = " Access Denied" & vbCrLf & " Contact your Administrator if the problem persists.   "
        MsgBox strMsg, vbInformation, "INVALID USER ID or PASSWORD"
        DoCmd.Close acForm, Me.Form.Name
    Case 2
        Select Case AccessLevel
            Case 1 ' lv1 menu
        Me.KnopA.Visible = True
                Me.KnopA.Enabled = True
                Me.KnopB.Visible = True
                Me.KnopB.Enabled = True
                Me.KnopC.Visible = True
                Me.KnopC.Enabled = True
                Me.KnopD.Visible = True
                Me.KnopD.Enabled = True
            Case 2 ' lv2 menu
                Me.KnopA.Visible = True
                Me.KnopA.Enabled = True
                Me.KnopB.Visible = False
                Me.KnopB.Enabled = False
                Me.KnopC.Visible = True
                Me.KnopC.Enabled = True
                Me.KnopD.Visible = False
                Me.KnopD.Enabled = False
            Case 3 ' lv3 menu
                Me.KnopA.Visible = True
                Me.KnopA.Enabled = True
                Me.KnopB.Visible = False
                Me.KnopB.Enabled = False
                Me.KnopC.Visible = False
                Me.KnopC.Enabled = False
                Me.KnopD.Visible = False
                Me.KnopD.Enabled = False
            Case Else
                strMsg = " Access Denied" & vbCrLf & "Contact your Administrator if the problem persists."
                MsgBox strMsg, vbInformation, "INVALID USER ID or PASSWORD"
        End Select
    Case Else

Dit stukje zou ik graag willen aanpassen zodat als het switchboard wordt geopend naar de autorisatie tabel wordt gekeken, in deze tabel bepaal ik dan of een knop zichtbaar is of niet.

Groeten,
Mark
 
Laatst bewerkt:
Dan moet je in ieder geval je formulier of tabel aanpassen, want zo'n oplossing werkt alleen als de objecten dezelfde naam hebben En omdat spaties in namen nogal onhandig zijn, zou ik dus de tabel aanpassen.
Zijn namen gelijk, dan werkt een simpele routine:
Code:
    Case 2
        strSQL = "SELECT * FROM Tbl_Autorisatie " & "WHERE [Access_Level]=" & AccessLevel
        Set rs = CurrentDb.OpenRecordset(strSQL)
        For Each fld In rs.Fields
            If Left(LCase(fld.Name), 4) = "knop" Then
                Me(fld.Name).Visible = fld.Value
            End If
        Next fld
Dit komt dus in de plaats van de knoppencode hierboven.
 
Helemaal goed bedankt Michel :thumb:

Ik heb aan de code nog 1 regel toegevoegd, ik zag de knop wel maar kon hem niet aanklikken.

Code:
    Case 2
       strSQL = "SELECT * FROM Tbl_Autorisatie " & "WHERE [Access_Level]=" & AccessLevel
        Set rs = CurrentDb.OpenRecordset(strSQL)
        For Each fld In rs.Fields
            If Left(LCase(fld.Name), 4) = "knop" Then
                Me(fld.Name).Visible = fld.Value
                Me(fld.Name).Enabled = fld.Value
            End If

Groeten,
Mark
 
Ik had alle knoppen weer Enabled gemaakt. Een onzichtbare knop is never nooit aan te klikken, dus om een onzichtbare knop disabled te maken is nogal zinloos. En we doen uiteraard nooit zinloze dingen in onze databases ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan