Avatar billede it-assistent Nybegynder
27. august 2002 - 13:35 Der er 8 kommentarer og
1 løsning

VB keycode

Jeg har indsat nedenstående kode i

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

for at kalde en bestemt funktion, når jeg trykker F2. Nu skal det imidlertid ikke være F2, men alt + g, alt + n, alt + t

Er der nogle der kender KeyCode værdierne for disse taste kompinationer??


Select Case KeyCode
       
        'F2 betyder giver gem
        Case vbKeyF2
            Call Gem_Click

        Case Else
    End Select
Avatar billede iblarsen Praktikant
27. august 2002 - 13:41 #1
KeyCode er den normale værdi. Men Shift får værdien 4. Så du skal teste på begge værdier.
Avatar billede proaccess Nybegynder
27. august 2002 - 13:41 #2
Du kan selv finde dem !!!

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Select Case KeyCode
    Case vbKeyF2
      Call Gem_Click
    Case Else
      MsgBox "KeyCode: " & keyCode & Chr$(13) & Chr$(10) & "Shift: " & Shift
  End Select
End Sub
Avatar billede proaccess Nybegynder
27. august 2002 - 13:46 #3
Generelt kan du bruge:

  vbKeyA - vbKeyZ

og så skal du huske at checkke for Shift:

acShiftMask    Bitmaske for SKIFT.
acCtrlMask    Bitmaske for CTRL.
acAltMask    Bitmaske for ALT.
Avatar billede it-assistent Nybegynder
27. august 2002 - 13:48 #4
til proaccess:
Jeg har indsat din kode og får følgende resultat når jeg trykker "G"

KeyCode: 71
Shift: 0

Hvordan omsætter jeg denne viden til en brugbar genvejstast ("alt + g"). Funktionen skal jo ikke kaldes hver gang der bliver trykket g så det kan ikke være 71+0, da dette er lig g's værdi alene.
Avatar billede proaccess Nybegynder
27. august 2002 - 13:50 #5
Du bruger denne "viden" til at lave en ny CASE...

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Select Case KeyCode
    Case vbKeyF2
      Call Gem_Click
    Case 71
      If Shift=0 then
        ' Her kommer koden, som skal køre når du taster 'G'
      End If
    Case Else
      MsgBox "KeyCode: " & keyCode & Chr$(13) & Chr$(10) & "Shift: " & Shift
  End Select
End Sub
Avatar billede proaccess Nybegynder
27. august 2002 - 13:51 #6
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Select Case KeyCode
    Case vbKeyF2
      Call Gem_Click
    Case vbKeyG
      If Shift=acAltMask then
        ' Her kommer koden, som skal køre når du taster 'Alt' & 'G'
      End If
    Case Else
      MsgBox "KeyCode: " & keyCode & Chr$(13) & Chr$(10) & "Shift: " & Shift
  End Select
End Sub
Avatar billede it-assistent Nybegynder
27. august 2002 - 14:33 #7
OK proaccess det virker. Hvad gør jeg for at undgå at der fx. kommer et e i aktuelt felt når jeg anden ctrl e til genvejstast??

'alt + e = gem
  Case vbKeyE
  If Shift = acCtrlMask Then
    Call Gem_Click
    MsgBox "KeyCode er alt + e "
    Exit Sub
  End If

Kan jeg overskrive eksisterende genveje - fx. ctrl g der som default åbner fejlfindingsvindue??
Avatar billede proaccess Nybegynder
27. august 2002 - 14:35 #8
'alt + e = gem
  Case vbKeyE
  If Shift = acCtrlMask Then
    Call Gem_Click
  '  MsgBox "KeyCode er alt + e "
      KeyCode=0
    Exit Sub
  End If
Avatar billede it-assistent Nybegynder
27. august 2002 - 14:40 #9
Thanks!!!
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