De Access toetsen SHIFT en F11 uitschakelen kan door een nieuwe eigenschap in de database toe te voegen met behulp van VBA.
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.