AllowByPAssKey

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.232
Ik krijg dikwijls de vraag (van niet-programmeurs) of je de shift toets bij het openen van een "beveiligde" DB kunt omzeilen.



In de help van MS vind ik het volgende:
"U kunt de eigenschap LoperToestaan (AllowBypassKey) gebruiken om instellen of door het ingedrukt houden van de SHIFT-toets de opstarteigenschappen en de macro AutoExec worden genegeerd. U kunt de eigenschap LoperToestaan (AllowBypassKey) bijvoorbeeld instellen op False om te voorkomen dat een gebruiker de opstarteigenschappen en de macro AutoExec kan omzeilen."

Heb in het immediate venster CurrentProject.Properties.Add "AllowBypassKey",false ingetypt.

Dan open ik de DB met SHIFT
Resultaat:
Startformulier wordt NIET getoond
Maar een AutoExec Macro wordt OOK NIET uitgevoerd (wat niet de bedoeling was)
En Navigatiescherm en volledige menu's (die ik bij de opties had uitgeschakeld) worden WEL getoond.(wat niet de bedoeling was)

Doe ik iets fout of is de opdracht ivm AllowBypassKey nutteloos?
 
Doe ik iets fout of is de opdracht ivm AllowBypassKey nutteloos?
Definieer 'nutteloos':). Ik heb het niet zo op volledig dichtgetimmerde databases, want je moet er zelf toch ook in kunnen. Mijn gebruikers hebben in ieder geval zelden de intentie om de database te slopen, omdat ze daar alleen zichzelf mee hebben, want dan kunnen ze hun werk niet (goed) doen. Maar ik zit blijkbaar bij een van de standaard afwijkende werkgever :D. Ik gebruik, als ik deze instelling al gebruik, daarom altijd een inlogscherm waarin de beheerder (ben je doorgaans zelf) een extra knop ziet waarmee de AllowBypass wordt ingesteld of niet. Op die manier houd je altijd controle, en kun je de rest dichtspijkeren voor de gewone gebruiker.
 
Ik geef meestal ook dat antwoord (dat de gebruiker niet opzettelijk iets wil verknoeien) maar men blijft de vraag stellen.
Maar hoe maak je een inlogscherm dat wordt getoond VOOR de database verder wordt geopend???
Zo iets als een Open event in een Excel file?
 
Maar hoe maak je een inlogscherm dat wordt getoond VOOR de database verder wordt geopend???
Dat hoeft natuurlijk niet; de AllowByPass stel je in bij het aflsuiten van de db en die werkt dan al als een gebruiker de db probeert te openen met de Shift toets. Anders heeft het ook niet zoveel zin lijkt mij. Een beheerder moet de optie wél kunnen gebruiken, dus die activeert de optie en start vervolgens de db opnieuw. Een alternatief zou nog kunnen zijn om een aparte db te maken alleen voor het inloggen; daarmee start je dan de echte db op met de juiste instellingen. Maar het lijkt mij een hele boel werk voor niks. Ja, een paar achterbakse medewerkers de voet dwars zetten :). Zelf zou ik een log gebruiken binnen de db waarin je alle activiteiten vastlegt. Kun je altijd zien wie de klojo's zijn die aan de db lopen te rommelen. En daar stuur je dan een manager op af met een knokploeg. Of zoiets :).
 
Ik maakte een opstartformulier met een tekstvak voor een wachtwoord en knop met de volgende code (die je natuurlijk met een wachtwoord kunt beschermen)
Code:
Private Sub cmd_Paswoord_Click()

If txt_Paswoord = "test" Then
    ap_EnableShift
Else
    ap_DisableShift
End If
End Sub

De functies (die ik nog moet bestuderen) vond ik op Internet.

Dits is dan toch redelijk waterdicht lijkt me?

Code:
Function ap_DisableShift() 'This function disable the shift at startup. This action causes
'the Autoexec macro and Startup properties to always be executed.

On Error GoTo errDisableShift

Dim db As DAO.Database
Dim prop As DAO.Property
Const conPropNotFound = 3270

Set db = CurrentDb()

'This next line disables the shift key on startup.
db.Properties("AllowByPassKey") = False

'The function is successful.
Exit Function

errDisableShift:
'The first part of this error routine creates the "AllowByPassKey
'property if it does not exist.
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowByPassKey", _
dbBoolean, False)
db.Properties.Append prop
Resume Next
Else
MsgBox "Function 'ap_DisableShift' did not complete successfully."
Exit Function
End If

End Function

Function ap_EnableShift()
'This function enables the SHIFT key at startup. This action causes
'the Autoexec macro and the Startup properties to be bypassed
'if the user holds down the SHIFT key when the user opens the database.

On Error GoTo errEnableShift

Dim db As DAO.Database
Dim prop As DAO.Property
Const conPropNotFound = 3270

Set db = CurrentDb()

'This next line of code disables the SHIFT key on startup.
db.Properties("AllowByPassKey") = True

'function successful
Exit Function

errEnableShift:
'The first part of this error routine creates the "AllowByPassKey
'property if it does not exist.
If Err = conPropNotFound Then
Set prop = db.CreateProperty("AllowByPassKey", _
dbBoolean, True)
db.Properties.Append prop
Resume Next
Else
MsgBox "Function 'ap_DisableShift' did not complete successfully."
Exit Function
End If

End Function
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan