Avatar billede webhelpers Praktikant
14. august 2001 - 12:41 Der er 8 kommentarer og
1 løsning

autokeys

Numsi is back, with more problemo!

Jeg har oprettet nogle genvejstaster der afspiller nogle makroer osv., som er let nok. Men jeg kan ikke finde ud af, at oprette en genvejstast til en knap som ikke afspiller en makro, men som afspiller en kode. I hjælp funktionen skriver de, at man skal skrive navnet på funktionen man skal kalde. Min knap hedder Private Sub Command19_Click(), men den kommer med fejl, når jeg skriver funktionen som Command19???

14. august 2001 - 12:53 #1
Hey Numsi :o)

Hvis jeg forstår dig ret, så vil du lave en genvejstast vha autokeys, som udføre samme kode som der ligger på en knap?

Dette kan du ikke, da hændelsesprocedure er Sub-procedure og makroer (f.eks. autokeys) kun kan udføre function-procedure.

Hvis man kun skal kunne benytte genvejstasten, når den aktuelle formular er åben, så bør du ikke bruge autokeys, da de virker i hele applikationen (og altså også når formularen er lukket!)
I stedet bør du sætte formularens egenskab \"Tastgennemsyn\" til \"ja\"
og derefter lave en hændelsesprocedure på VedTastNed, så aflæser tastaturet. Derved kan du frit kalde Command19_Click.

Men hvis du stadig ønsker at bruge Autokeys, så bår du lave en ny public funktion i et modul, hvor du så lægger al koden i Command19_Click-proceduren.
Command19_Click kommer så bare til at se således ud:

Private Sub Command19_Click()
  call NyFunction
end sub

Din autokeys-makro kan derefter kalde NyFunktion med makrohandlingen AfspilKode (RunCode)

Jeg håber, at det giver mening?

/Thomas
Avatar billede webhelpers Praktikant
14. august 2001 - 13:02 #2
Så public funktionen skrives således?:
Public Function blabla()

blabla indhold fra command19
End Function

14. august 2001 - 13:03 #3
Jep...den skal bare helst ligge i et modul - hvis du lægger den i en formular, kan den kun kaldes når formularen er åben (og så skal den kaldes på en speciel måde) så et modul er bedst.
Avatar billede webhelpers Praktikant
14. august 2001 - 13:09 #4
Ok. jeg kan ikke få det til at virke.
I makroen autokeys, har jeg valgt {F6} til at afspille kode. Skal man så skrive Hjælp()(Som funktionen hedder) i funktionsnavnet eller hvordan skriver man det?
14. august 2001 - 13:15 #5
Ja: Hjælp()

Parenteserne skal med.
Kommer den med en fejl?

Bruger du Me i din funktion? I så fald skal du skrive: Forms![NavnPåDinFormular]
alle de steder hvor du bruger Me.
Avatar billede webhelpers Praktikant
14. august 2001 - 13:17 #6
Nej, funktionen ser således ud:
Public Function Hjælp()

On Error GoTo Err_Command19_Click
       
  Dim Wrd As New Word.Application
  Wrd.Visible = True
  Wrd.Activate
  Wrd.Documents.Open \"G:\\Databaser\\Access2000\\Reinhardoil\\Database\\Seneste\\Nyimport-bedsteversion\\Sendt-til-reinhard-6.8\\Hjælpedokument.doc\"
  Set Wrd = Nothing

Exit_Command19_Click:
    Exit Sub

Err_Command19_Click:
    MsgBox Err.Description
    Resume Exit_Command19_Click

End Function
Avatar billede webhelpers Praktikant
14. august 2001 - 13:19 #7
Ang. det andet tip du gav ved tastned, hvad skriver man så i hændelsesproceduren, hvis F1 skal udføre koden som ligger i \'knap12\' fx
14. august 2001 - 14:35 #8
Du skriver f.eks.:

If KeyCode = vbkeyF1 then
  knap12_click
end if

vbkeyF1 angiver at det er F1

/Thomas
Avatar billede webhelpers Praktikant
14. august 2001 - 14:45 #9
Tak for det!
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