Bypasskey uitschakelen

Status
Niet open voor verdere reacties.

lammertc

Gebruiker
Lid geworden
30 nov 2002
Berichten
141
Hallo
Ik probeer de gebruikers van mijn database ervan te weerhouden dat ze de <Shift> key gebruiken om zelf zaken aan te passen
Ik vond op het internet deze code die ik in een module heb toegevoegd.

'Copy this function into a new public module.

Option Compare Database
Option Explicit

Public Function SetProperties(strPropName As String, _
varPropType As Variant, varPropValue As Variant) As Integer

On Error GoTo Err_SetProperties

Dim db As DAO.Database, prp As DAO.Property

Set db = CurrentDb
db.Properties(strPropName) = varPropValue
SetProperties = False
Set db = Nothing

Exit_SetProperties:
Exit Function

Err_SetProperties:
If Err = 3270 Then 'Property not found
Set prp = db.CreateProperty(strPropName, varPropType, varPropValue)
db.Properties.Append prp
Resume Next
Else
SetProperties = False
MsgBox "SetProperties", Err.Number, Err.Description
Resume Exit_SetProperties
End If
End Function
'***************** Code End ***************

Op een of andere manier gaat dit voor mij niet werken
Moet ik nu nog dingen aanpassen of zo?
Ik ben helemaal niet bekend met de VBA code
Graag jullie hulp
Bedankt
 
You're almost there!

My code and a example. Pay attention to the differences between yours and mine!
Code:
Public Function SetProperties(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
'To prevent user from bypassing the autoexec macro bij pressing the shift key.
'SetProperties "AllowBypassKey", dbBoolean, True

    On Error GoTo Err_SetProperties

    Dim db As DAO.Database, prp As DAO.Property

    Set db = CurrentDb
    db.Properties(strPropName) = varPropValue
    SetProperties = True
    Set db = Nothing

Exit_SetProperties:
    Exit Function

Err_SetProperties:
    If Err = 3270 Then    'Property not found
        Set prp = db.CreateProperty(strPropName, varPropType, varPropValue)
        db.Properties.Append prp
        Resume Next
    Else
        SetProperties = False
        ErrorProc Err, Err.Description, "SetProperties", "basSecurity"
        Resume Exit_SetProperties
    End If
End Function
Run: SetProperties "AllowBypassKey", dbBoolean, True in the startup procedure to disable SHIFT.

Note: Changes will apply next time you start the application!

HTH:D
 
Laatst bewerkt:
Hoi Guus

Er zaten inderdaad een paar verschillen in, deze heb ik aangepast

Blijft nog één punt over

Run: SetProperties "AllowBypassKey", dbBoolean, True in the startup procedure to disable SHIFT

Ik start nu op met een macro "Autoexec" vanwege een altijd gemaximaliseerd scherm.
Dit is dus voor mij de "opstartprocedure"

Waar laat ik dan jouw runcommando?
Niet in deze macro, want die kun je omzeilen met <shift>
Moet het dan in de snelkoppeling van de gebruiker zitten?
Nee, Want dan kan men via de verkenner alsnog zonder deze opstartoptie opstarten
Kortom, ik weet niet waar ik jouw runcommando moet inzetten
 
Ik start nu op met een macro "Autoexec" vanwege een altijd gemaximaliseerd scherm.
Dit is dus voor mij de "opstartprocedure"

Waar laat ik dan jouw runcommando?
Niet in deze macro, want die kun je omzeilen met <shift>
Met de AutoExec macro start je de initierende code bijvoorbeeld InitApp. Daarin zet je
Code:
Public sub InitApp()

    Docmd.Maximize
    SetProperties "AllowBypassKey", dbBoolean, True

End Sub
Je AutoExec macro is niet meer te omzeilen met de SHIFT toets

Je moet er natuurlijk wel voor zorgen dat je er zelf nog wel bij kan.

Je kan daarvoor de AutoKeys macro gebruiken. Je kan hiermee je eigen shortcuts aanmaken. Bijvoorbeeld ctrl-m om je database window te tonen.

HTH:D
 
Hoi Guus

Ik ben nu al twee dagen aan het proberen om in mijn ( nederlandstalige ) access jouw oplossing
Met de AutoExec macro start je de initierende code bijvoorbeeld InitApp
.
in de macro te zetten, maar ik krijg het niet voor elkaar.
De opdrachtregel geeft een aantal mogelijkheden maar als ik die probeer mislukt het steeds.
Ik had al gezegd dat ik niet bekend ben met VBA en dat blijkt nu ook weer.
Ik heb intussen wel een andere oplossing gevonden in de runtime versie van access, die doet eigenlijk hetzelfde terwijl ik de volledige functionaliteit wel zelf kan gebruiken.
Toch (alweer) bedankt voor de moeite
Lammert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan