Avatar billede fcjohn Nybegynder
21. januar 2005 - 14:35 Der er 14 kommentarer og
1 løsning

Dynamisk genvejsmenu

Jeg har en række tekstboksfelter på et slags kort, som ved højreklik skal vise et variabelt antal referencer til noget data.
Jeg er med på at jeg skal lave min egen genvejsmenu, men hvordan hulen får jeg puttet funtionaliteten ind i den, så der kommer til at være en liste med de rette referencer der så kan åbnes ved klik?
Avatar billede -anders- Juniormester
21. januar 2005 - 14:46 #1
Hej, du skal skrive dine funktioner i et modul, under egenskaber for genvejsmenuen er der et felt der hedder ved handling, der skriver du =navnpådinfunktuion()
Avatar billede -anders- Juniormester
21. januar 2005 - 14:47 #2
For at tilføje menupunkter til din(e) genvejsmenuer skal du "trække" eller bruger makro obkjekter ind på din genvejsmenu
Avatar billede -anders- Juniormester
21. januar 2005 - 14:55 #3
Sorry, læste ikke at genvejsmenuen skulle være dynamisk, ved ikke lige hvordan det skal gribes an, men hvis du opretter en genvejsmenu for hver tekstbox på formen er det ligetil, men har du mange tekstbokse, er dette selvfølgelig ikke optimalt
Avatar billede fcjohn Nybegynder
21. januar 2005 - 14:57 #4
Men det jeg gerne vil, er at oprette menupunkter med reference til nogle poster, som skal vises på en form eller i en rapport, når man højreklikker og vælger et af de, af minfunktion(), oprettede menupunkter. Jeg skal ikke selv lave menupunkterne, det skal funktionen. jeg har muligvis bare ikke forstået hvad du mener,m for jeg kan heller ikke finde de der egenskaber for min "test" genvejsmenu...
Avatar billede -anders- Juniormester
21. januar 2005 - 15:03 #5
hej, jeg forstår hvad du mener, jeg har desværre ikke noget bud når menupunkterne skal være dynamiske, måske der er andre der kommer med indlæg, for at komme til den omtalte egenskab skal du vælge tilpas i en menulinje, herefter skal du udpege din gennvejsmenu, og højreklikke på et brugerdefineret menupunkt så kan man aflæse egenskaberne. For god ordens skyld skal det siges at jeg trækker mit svar tibage, da ikke jo ikke er brugbart :o)
Avatar billede fcjohn Nybegynder
21. januar 2005 - 15:29 #6
Ok, jeg håber så at det overhovedet kan lade sig gøre, men tvivler... Tak for hjælpen med egenskaberne.
21. januar 2005 - 16:46 #7
Alt kan lade sig gøre :o)

Denne kode skifter caption på en knap på genvejsmenuen:

    Dim cmb As CommandBar
    Dim cbc As CommandBarControl
    Set cmb = Application.CommandBars("Din testmenu")
    Set cbc = cmb.Controls(1)
    cbc.Caption = "Dette er en demo!"
    cbc.Style = msoButtonCaption


Denne kode disabler en knap i en given situation:

    Dim combtn As CommandBarControl
    Set combtn = CommandBars("Din testmenu").FindControl(Type:=msoControlButton, Tag:="Tekst på din knap")
    If Kriterie Then
        combtn.Enabled = Aktiveret
    End If
21. januar 2005 - 16:47 #8
Det er i hvert fald noget at starte med.

Vigtigt: Du skal huske at lave en reference til "Micorsoft Office x.0 Object Library"
Avatar billede fcjohn Nybegynder
22. januar 2005 - 15:03 #9
Hvor er det jeg skal lave den reference? Og jatak, det ligner bestemt noget jeg kan bruge til noget.
Avatar billede mugs Novice
22. januar 2005 - 15:05 #10
Åbn en formular i Designvisning og gå ind i VBA-editoren. Under Tools > References browser du ned igennem bibliotekerne til du finder den rette og der sætter du et checkmærke i venstre side i den lille boks.
Avatar billede fcjohn Nybegynder
22. januar 2005 - 15:08 #11
mugs> Det sad jeg så lige og opdagede selv. Den nævnte reference er allerede afhakket, men min DB kan ikke genkende CommandBar objektet?
Avatar billede fcjohn Nybegynder
22. januar 2005 - 15:18 #12
Vrøvl, det jeg lige skrev. Det var den jeg havde set Micorsoft !!ACCESS!! x.0 Object Library og ikke Micorsoft !!Office!! x.0 Object Library, så nu har jeg fundet det.
Avatar billede mugs Novice
22. januar 2005 - 15:19 #13
;o)
Avatar billede fcjohn Nybegynder
24. januar 2005 - 17:55 #14
Det er så alt sammen meget fint med de der genvejsmenuer, men når jeg så vil af med skidtet igen er det åbenbart ikke så let endda. Jeg har et kort som bliver opdaret og hver gang skal der genereres nye genvejsmenuer. Man kan muligvis tilrette de eksisterende, men jeg synes det er lettere at slette dem og så lave nogle nye. Problemet er så bare lige at få det gjort, hvorfor må jeg ikke gøre sådan her:

Public Function delgenvej()

Dim con As ADODB.Connection
Dim strSQL As String, Tekst As String
Dim rec As Recordset
Dim cmb As CommandBar

Set rec = New ADODB.Recordset
Set con = CurrentProject.Connection

strSQL = "SELECT Kort_Navn FROM tbl_Spsegment"
rec.Open strSQL, con

Do While Not rec.EOF
 
    Tekst = rec!Kort_Navn
    If Form_frm_kort(rec!Kort_Navn).ShortcutMenuBar = "" & Tekst Then
     
      Set cmb = Application.CommandBars(Tekst)
      cmb.Delete
   
    End If
 
rec.MoveNext

Loop

rec.Close
con.Close

End Function


Jeg får en fejl der hedder 'invalid procedure call og argument', og jeg fatter ikke et hak af det...
Avatar billede fcjohn Nybegynder
24. januar 2005 - 17:59 #15
Set cmb = Application.CommandBars(Tekst)

Det er denne linie der er markeret som indeholdende en fejl...

Og grunden til at jeg har lavet "tekst" strengen er, at det åbenbart ikke kan lade sig gøre at få systemet til at fatte at det er en streng der ligger i recordset'et.
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