Makro oder Rückruffunktion "GetEnabled" kann nicht ausgeführt werd

23/12/2007 - 18:57 von UserOG | Report spam
Hallo, ich bekomme bei der Callbackfunktion "cbGetEnabled" immer die
Fehlermeldung (Makro Funktion nicht vorhanden bzw. Parameter falsch) bzw. das
Ribbon wird nicht entsprechend aktualisiert. Nach einer verzweifelten Suche
nach dem Fehler habe ich den noch nicht gefunden! M. E. müsste alles stimmen.
Das ribbon liegt als xml vor und ist in der tb gespeichert. Anbei der xml
Code (Auszug) sowie die Callbacks (die btn Edit etc. sollen je nach
Benutzerrechte aktiviert oder deaktiviert werden).

<customUI xmlns="http://schemas.microsoft.com/office...omui"
onLoad="OnRibbonLoad">
<ribbon startFromScratch="true">
...
<group id="grpLock_Unlock" label="Lock - Unlock">
<button id="btnLock" size="large" label="Lock" imageMso="GroupProtect"
onAction="cmdOnActionButton" getEnabled="cbGetEnabled"/>
<button id="btnEdit" size="large" label="Edit"
imageMso="ReviewAcceptChange" onAction="cmdOnActionButton"
getEnabled="cbGetEnabled"/>
<button id="btnDelete" size="large" label="Delete"
imageMso="ReviewRejectChange" onAction="cmdOnActionButton"
getEnabled="cbGetEnabled"/>
</group>
...

Public Sub cbGetEnabled(ctl As IRibbonControl, ByRef enabled)
enabled = bolEnabled
End Sub

Public Sub cbGetEnabledSet(RibbonCtrlID As String, pressed As Boolean)
bolEnabled = pressed
gobjRibbon.InvalidateControl RibbonCtrlID
End Sub

Public Sub OnRibbonLoad(ribbon As IRibbonUI)
Set gobjRibbon = ribbon
End Sub

Wenn ich die Funktion cbGetEnabledSet aufrufe (um den Status zu àndern),
kommt die Fehlermeldung. Interessant ist, wenn ich im Direktfenster den Code
eingeben ... InvalidateControl "btnEdit" dann klappts. Wo kann ich da noch
suchen?

Besten Dank im voraus für Eure Hilfe! Karl-Heinz
 

Lesen sie die antworten

#1 Gunter Avenius
23/12/2007 - 19:11 | Warnen spam
Hallo UserOG,

UserOG schrieb folgendes:
Wenn ich die Funktion cbGetEnabledSet aufrufe (um den Status zu
àndern), kommt die Fehlermeldung. Interessant ist, wenn ich im
Direktfenster den Code eingeben ... InvalidateControl "btnEdit"
dann klappts. Wo kann ich da noch suchen?



Kann ich nicht nachvollziehen. Es funktioniert Beiedes bei mir:

gobjRibbon.InvalidateControl RibbonCtrlID
gobjRibbon.InvalidateControl "btnEdit"

An welcher Stelle ruft Du "cbGetEnabledSet " auf?

Gruß
Gunter
__________________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de

Ähnliche fragen