Avatar billede mikkelk Nybegynder
06. april 2005 - 09:53 Der er 18 kommentarer og
1 løsning

Åbne en genvejsmenu med VBA?

Kan det lade sig gøre med VBA at åbne en bestemt brugerdefineret genvejsmen - og hvordan?
Avatar billede -anders- Juniormester
06. april 2005 - 10:54 #1
Hej, ved ikke lige om det er det ude efter, men denne virker feks. ved åbning af en bestemt form:

Me.ShortcutMenuBar = "Navn på genvejsmenu", koden skal lægges ved åbning på formen. Koden kan også benyttes feks. ved klik i kontrolelementer feks. tekstbokse e.t.c
Avatar billede sjap Praktikant
06. april 2005 - 11:11 #2
Jeg ved det faktisk heller ikke, men jeg undrer mig blot over, hvorfor du er interesseret i det. Er en genvejsmenu ikke karakteriseret ved, at den dukker frem ved et højreklik med musen? Det kan vel ikke være meget nemmere? Blot nysgerrig.
Avatar billede mikkelk Nybegynder
06. april 2005 - 11:23 #3
:-) Det er somænd fordi jeg gerne vil bruge den i forbindelse med et højreklik på en post i et treeview(ActiveX-kontrollen). Og den skal så vise forskellige menuer alt efter hvilken type post der klikkes på...
Avatar billede -anders- Juniormester
06. april 2005 - 11:27 #4
Tror ikke at treewviw kontrollen kan håndtere denne egenskab, arbejder selv med listviewkontrollen, og her virker egenskaben ShotCutMenuBar ikke. Med 06/04-2005 10:54:30 kan man håndtere flere genvejsmenuer på samme form alt efter hvilket kontrolelement man klikker på
Avatar billede mikkelk Nybegynder
06. april 2005 - 11:32 #5
aandersen -> Jeg er helt klar over at ShotCutMenuBar ikke umiddelbart kan bruges. Det er derfor jeg har et problem :-)

Jeg har et stykke kode der fanger højreklik på en post i mit treeview - spørgsmålet er så om man kan lave et eller andet a'la:
shortCutMenu.Open("MenuNavnEllerIDEllerNoget")
Avatar billede -anders- Juniormester
06. april 2005 - 11:42 #6
Hmm, ved det ikke, men det er da værd at teste, hvis jeg finer en løsning poster jeg den her :o)Problemet er at treeviewkontrollen kalder MSCOMCTL.OCX, denne fil har begrænset mulighedder i forhold til access-miljøet! hvis man arbejder med den i et rent VB-miljø er mulighedderne langt større. Et tip: prøve at søge på treeview i VB-kategorien, der er flere spændende ting som kan bruges.

mvh Anders.
Avatar billede mikkelk Nybegynder
06. april 2005 - 11:49 #7
Følgende virker til at fange højreklik. Men problemet er stadig menuen:
Private Sub ProeveTrae_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
    If Button = vbRightButton Then
       
    End If
End Sub
Avatar billede -anders- Juniormester
06. april 2005 - 11:55 #8
Hmm, jeg tror altså ikke du kan "knytte" en genvejsmenu til kontrollen i access-miljøet hverken på den ene eller anden måde
Avatar billede mikkelk Nybegynder
06. april 2005 - 11:55 #9
I VB kan man åbenbart bare bruge:

PopUpMenu MenuBaren

Det kan man så åbenbart ikke i Access - hvad kan man så? :-)
Avatar billede mikkelk Nybegynder
06. april 2005 - 12:06 #10
Rettelse - følgende fanger højreklikket:
Private Sub ProeveTrae_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
    If Button = 2 Then
     
    End If
End Sub
Avatar billede -anders- Juniormester
06. april 2005 - 12:09 #11
Ja det er her den berømte hund ligger begravet 06/04-2005 11:42:42, jeg ved det simpelthen ikke, måske der kommer en VBA-haj forbi denne tråd og løser det, det ville bare være dejligt :o)
Avatar billede mikkelk Nybegynder
06. april 2005 - 12:14 #12
Jep :-)
Avatar billede mikkelk Nybegynder
06. april 2005 - 13:17 #13
Det lader til at være vanskeligere end som så... Jeg øger pointene til den der måtte finde en løsning...
Avatar billede nih Novice
06. april 2005 - 21:56 #14
Jeg har lavet et lille eksempel du kan lege videre med.

Private Sub TreeView7_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
Dim genvMenu As CommandBar
Set genvMenu = Application.CommandBars("PopUpGenvej")
If Button = 2 Then
    If 1 = 1 Then
        genvMenu.Controls(1).Caption = "Hej"
        genvMenu.Controls(1).OnAction = "=MsgBox('1=1')"
        genvMenu.ShowPopup

    End If
End If
End Sub

Det kræver at du først opretter en genvejsmenu ved navn: PopUpGenvej
Vis -> værktøjslinjer -> tilpas
Ny -> indtast navnnet på din værktøjslinje: PopUpGenvej
egenskaber -> Type = genvejsmenu

Held og lykke
Niels
Avatar billede nih Novice
06. april 2005 - 21:58 #15
Du skal selvfølgelig også tilføje en knap på din værktøjslinje: genvMenu.Controls(1)... henviser til første knap.
Avatar billede mikkelk Nybegynder
07. april 2005 - 08:57 #16
Det var jo lige netop linien "genvMenu.ShowPopup" jeg skulle bruge :-)

Jeg takker mange gange for hjælpen.
Avatar billede mikkelk Nybegynder
07. april 2005 - 08:57 #17
Hov :-)
Avatar billede nih Novice
07. april 2005 - 09:16 #18
:o)
Avatar billede -anders- Juniormester
07. april 2005 - 14:58 #19
Hej mikkelk, ja det kunne altså lade sig gøre :o), når bare de rigtige VBA-hajer  kommer til. Forøvrigt kræver det en reff. til Microsoft Office (versionnr) Objekt Libray. Glad for at du fik det til at virke.
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