Avatar billede jb-npt Nybegynder
01. maj 2003 - 17:04 Der er 8 kommentarer og
1 løsning

Blokering af funktionstaster i Access

Jeg har oprettet nogle autokeys (via makroen autokeys); hhv. F1 for Filtrer efter formular og F2 for Anvend filter.
Men i et bestemt billede der i nogle tilfælde låses for at overvåge modtagningen af nogle tekstfilimportdata, ønsker jeg ikke at brugeren skal kunne aktivere disse funktioner (ikonerne i værktøjsmenuen har jeg allerede blokeret). Det
Hvordan deaktiverer jeg F1 og F2-tasterne, så der ikke sker noget ved tastning af dem; og hvordan aktiverer jeg dem senere igen via lidt VBA-programmering?

Mvh.
Jørgen
Avatar billede sjap Praktikant
01. maj 2003 - 17:21 #1
Du undersøger bare i dine funktioner om det billede du nævner, er åbent/aktivt. Hvis det er afsluttes funktionen. Hvis det ikke er, kører funktionen som normalt.
Avatar billede sjap Praktikant
01. maj 2003 - 17:24 #2
Det kan f.eks. se således ud:


Funktion F1()

    If Not Screen.ActiveForm.Name = "DenForbudteFormular" then
        --- her skriver du så din normale F1 kode ---
    End If

End Function
Avatar billede jb-npt Nybegynder
01. maj 2003 - 17:30 #3
Det er den samme formular, jeg befinder mig i. Den ændrer bare status, så jeg lukke en lang række funktioner og tekstbokse af. Og når det er tilfældet, skal brugeren heller ikke kunne aktivere noget med F1 og F2. Dvs. formularen som sådan er hele tiden aktiv - det er blot større eller mindre dele af den, der er tale om. Derfor har jeg brug for at kunne åbne og lukke for adgangen til at bruge F1 og F2.

Mvh.
Jørgen
Avatar billede sjap Praktikant
01. maj 2003 - 17:33 #4
Kan du så ikke bare undersøge om status er sådan at F1 ikke må virke:

Funktion F1()

    If Status = F1Tilladt then
        --- her skriver du så din normale F1 kode ---
    End If

End Function
Avatar billede jb-npt Nybegynder
01. maj 2003 - 17:37 #5
Hvordan undersøger jeg det.

Jeg har ikke i VBA noget kode tilknyttet F1 og F2. De fungerer udelukkende i kraft af deres oprettelse i makroen Autokeys.

Jeg forestillede mig noget i retning af AllowKey.F1 = False hhv. True.
Det kan også være der er en Ascii-kode for F1 og F2-tasterne (??)
Det findes jo ikke, men noget lignende. Simpelt hen blokering af F1 og F2, så der ikke sker noget, hvis brugeren taster dem.

Mvh.
Jørgen
Avatar billede sjap Praktikant
01. maj 2003 - 17:41 #6
Du kan også angive betingelser i makroer - menuen Vis/Betingelser.
Avatar billede sjap Praktikant
01. maj 2003 - 17:45 #7
Betingelsen kan f.eks. være:

Forms![DINFORMULAR]![FELTPÅFORMULARDERVISERSTATUS]=0

Hvis du altså har et eller andet på din formular, der kan bruges til en sådan kontrol - ellers må du oprette et felt.
01. maj 2003 - 20:59 #8
Du kan evt også ændre den makro, som benyttes som Autokeys. Derved kan du have forskellige Autokeys-makroer.

Du skriver (i en hændelsesprocedure):
Application.SetOption "Key assignment macro", "Autokeys_2"

Når du vil skifte tilbage skriver du blot:
Application.SetOption "Key assignment macro", "Autokeys"

Dette er blot en anden måde at styre det på.

/Thomas
Avatar billede sjap Praktikant
01. maj 2003 - 21:04 #9
Smart!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester