
Deze toetsen kunnen worden gebruikt om de beveiliging van een Access database te omzeilen. Het is namelijk zo dat wanneer een beveiligde database wordt gestart met de SHIFT (AllowBypassKey) ingedrukt de beveiliging omzeild wordt. Een andere methode om de beveiliging te omzeilen is om na het starten van de database op F11 (AllowSpecialKeys) te drukken.
Een Access database beveiligen is handig om bijvoorbeeld de objecten - zoals tabellen - te verbergen. Deze beveiliging kan worden toegepast door te navigeren naar: bestand, opties en huidige database. In het daarop volgende venster kan worden aangegeven welk formulier moet worden gebruikt bij het opstarten en dat het navigatie deelvenster (objecten) niet moet worden weergegeven.
De toepassing bestaat uit een formulier (Form_frmStart) met een toggle button (tglBeveiliging) om de beveiliging in- en uit te schakelen.
'-----------------------------------------------------------------------------------------------------------------------
' Auteur : pascalterheege.nl
' Datum : 21-6-2017
' Object : Form_frmStart
' Doel : afhandelen toggle button en instellingen (true, false) opslaan
'-----------------------------------------------------------------------------------------------------------------------
Option Compare Database
Private Sub Form_Load()
' Opgeslagen instellingen uitlezen bij starten
Dim blnWaarde As Boolean
blnWaarde = getProperty("AllowBypassKey")
If blnWaarde = False Then
tglBeveiliging.Caption = "Toetsen SHIFT en F11 inschakelen"
Else
tglBeveiliging.Caption = "Toetsen SHIFT en F11 uitschakelen"
End If
End Sub
Private Sub tglBeveiliging_Click()
' Afhandelen toggle button
If tglBeveiliging.Caption = "Toetsen SHIFT en F11 inschakelen" Then
' inschakelen
ChangeProperty "AllowBypassKey", 1, True
ChangeProperty "AllowSpecialKeys", 1, True
tglBeveiliging.Caption = "Toetsen SHIFT en F11 uitschakelen"
Else
' uitschakelen
ChangeProperty "AllowBypassKey", 1, False
ChangeProperty "AllowSpecialKeys", 1, False
tglBeveiliging.Caption = "Toetsen SHIFT en F11 inschakelen"
End If
If MsgBox("De wijzigigen gaan van kracht wanneer deze database opnieuw wordt gestart!" $ vbNewLine & vbNewLine & _
"Wilt u Access nu sluiten?", vbInformation + vbYesNo) = vbYes Then Application.Quit
End Sub
Voorts wordt er gebruik gemaakt van een standaard functie ChangeProperty met een eigen gedefinieerde functie getProperty.
'-----------------------------------------------------------------------------------------------------------------------
' Auteur : pascalterheege.nl
' Datum : 19-6-2017
' Object : modBeveiliging
' Doel : access toetsen SHIFT (AllowBypassKey) en F11 (AllowSpecialKeys) uitschakelen en inschakelen
' Bron : https://support.office.com/nl-nl/article/AllowBypassKey-loper-toestaan-eigenschap-30ab5c36-51df-41a0-a955-b0f1deac517b
'-----------------------------------------------------------------------------------------------------------------------
Option Explicit
Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
' Functie komt rechtstreeks van bovenstaande Microsoft bron
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
ChangeProperty = False
Resume Change_Bye
End If
End Function
Function getProperty(strPropName As String)
' Eigen gedefinieerde functie t.b.v. uitlezen eigenschap
Dim dbs As Object
Set dbs = CurrentDb
getProperty = dbs.Properties(strPropName)
End Function
Download hier de toepassing.
