PDA

Vollständige Version anzeigen : eigenes Kontextmenü


mischma
28.04.2011, 07:25
Hallo,

für die Nutzung meiner Datenbank mit einer Runtime-Version möchte ich ein eigenes Kontextmenü erstellen und dafür die Menüeinträge (s.Screenshot) aus dem Standardkontextmenü aufrufen:

- Spalten ausblenden
- Spalten einblenden
- Spalten fixieren
- Spaltenfixierung aufheben

Geht das überhaupt und wenn ja, wie?

Vielen Dank, Mike.

Josef P.
28.04.2011, 07:47
Hallo!

Wenn du die Controls mit deren ID an die Commandbar anfügst, sollte das eigentlich funktionieren.

ID auslesen:
Const CommandBarName As String = "Form Datasheet Column"
Dim cb As CommandBar
Dim cc As CommandBarControl

Set cb = Application.CommandBars(CommandBarName)

For Each cc In cb.Controls
Debug.Print cc.Caption, cc.ID
Next

mfg
Josef

mischma
28.04.2011, 10:50
Hi Josef,

vielen Dank für Deine Hilfe. Es klappt wie folgt:

Public Function ErstelleMeinKontextmenü()
On Error Resume Next

CommandBars("MeinKontextmenü").Delete

Dim cmb As CommandBar
Set cmb = CommandBars.Add("MeinKontextmenü", msoBarPopup, False, False)

With cmb.Controls
.Add msoControlButton, 1955, , , True ' Spalten ausblenden
.Add msoControlButton, 2764, , , True ' Spalten einblenden
.Add msoControlButton, 544, , , True ' Spalten fixieren
.Add msoControlButton, 1794, , , True ' Spaltenfixierung aufheben
End With
End Function

Grüsse, Mike

mischma
28.04.2011, 19:00
Hallo Josef,

noch ein Problem habe ich in meiner Runtimeversion.

Ich möchte zwei Kontextmenüs unterschiedlichen Aktionen zuweisen, doch das klappt nicht korrekt.

Klickt man auf einen Spaltenkopf meines Datenblattes soll das eine Kontextmenü erstellt werden.

Klickt man jedoch auf einen Datensatz, dann soll das andere Kontextmenü erstellt werden.

Screenshot und Beispiel-DB anbei...

Danke für Deine Hilfe.

Grüsse, Mike

Josef P.
28.04.2011, 22:50
Hallo!

Mir ist nur eine Variante eingefallen, die das Kontextmenü direkt öffnet, da bei der accdr (bzw. bei deaktiviertem Standardkontextmenü) bei Klick auf die Spaltenüberschriften im Datenblatt unter Ac2010 kein Kontextmenü erschien.

mfg
Josef

mischma
29.04.2011, 08:26
Hallo Josef,

so ist es für mich perfekt. Vielen Dank und Grüsse, Mike.