Disable Shift

I Access kan sættes forskellige opstartsparametre for en database under Fumktioner - Start. Her kan fx bestemmes, hvilken formular, der skal vises ved start, om databasevinduet skal kunne vises og så videre. Imidlertid kan disse indstillinger "overrules", hvis brugeren holder Shift på tastaturen nede, mens databasen åbnes.

Denne mulighed kan fjernes via VBA kode, men det er vigtigt, at man etablerer en mulighed for at tillade det igen, da man ellers ikke selv, kan overrule startparametrene, når databasen skal vedligeholdes. Jeg plejer at bruge følgende metode. På en tilfældig (men for mig kendt formular), placerer jeg - i et område uden knapper eller andre objekter, en forholdsvis stor kommandoknap, som jeg giver egenskaben Gennemsigtig, så knappen ikke kan ses på formularen. På knappens VedDobbeltklik hændelse lægger jeg så denne kode:

Const DB_Boolean As Long = 1
    ChangeProperty "AllowBypassKey", DB_Boolean, False

Denne kode bruges til at slå Skifttast funktionen fra. På en tilsvarende knap et andet sted, måske i en anden formular, lægger jeg så denne kode, der slår tasten til igen.

Const DB_Boolean As Long = 1
    ChangeProperty "AllowBypassKey", DB_Boolean, True

Disse to knapper, som brugene altså ikke ved eksisterer, og derfor næppe dobbeltklikker på, vil nu kunne bruges til at slå Skift til og fra. Men først skal denne kode placeres i et almindeligt modul i databasen:

Public Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer 'Dette skal skrives på én linie i modulet.

    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

 

Når du dobbeltklikker på den første knap, og genåbner databasen vil skift være slået fra. Dobbeltklikker du så på den anden og lukker og genåbner databasen er Skift-tasten slået til igen.

- Til Top -
- Tilbage til Access -