Elite Veteran
Beiträge: 876
Ort: Wien | Hallo, Sergio!
Sergio
...Ich habe unter «Datei-Optionen-Menüband anpassen» eine neue benutzerdefinierte Registerkarte erstellt (mit Gruppen wie «Sortieren», «Filtern» usw.) und Befehlen aus der vorhandenen Befehlssammlung.
Für den Menüpunkt «Editieren» habe ich das Makro «makFormularEditieren» erstellt, mit dem Inhalt «AusführenCode Funktionsname Forms.frmObjekte.fktFormularEditieren».
Die Funktion «fktFormularEditieren» hat den Code:
Function fktFormularEditieren()
Me.AllowEdits = Not Me.AllowEdits
If Me.AllowEdits Then
Me.Section(acDetail).BackColor = RGB(255, 165, 0)
Else
Me.Section(acDetail).BackColor = RGB(200, 200, 200)
End If
Me.Refresh
End Function
Genau diese Funktion wird als unsicher taxiert, mit der zitierten Fehlermeldung:
"Access konnte einen oder mehrere Ausdrücke nicht auswerten, da auf ‘fktFormularEditieren’ in einem Ausdruck verwiesen wurde."
"In Ausdrücken dürfen nur Funktionen und Eigenschaften enthalten sein, die als sicher gelten, wenn Access im Sandkastenmodus ausgeführt wird."
...
Aha, dann liegt das an dem Aufruf-Ausdruck im Makro, mit dem Access nichts anfangen kann. Ich wüsste auch nicht, wie man den so formuliert, dass es klappt. Was du stattdessen probieren kannst, ist, die Funktion aus dem Formular in ein Standardmodul zu verlegen (im Ribbon: Erstellen - Modul). Dann musst du halt das "Me" ersetzen. Das Refresh kannst du m.E. einsparen. Also:
Function fktFormularEditieren()
Dim frm As Form
Set frm = Screen.ActiveForm
frm.AllowEdits = Not frm.AllowEdits
If frm.AllowEdits Then
frm.Section(acDetail).BackColor = RGB(255, 165, 0)
Else
frm.Section(acDetail).BackColor = RGB(200, 200, 200)
End If
End Function
Im Makro verwendest du dann bei AusführenCode: fktFormularEditieren()
----- Servus
Karl
*********
Access-Entwickler-Konferenz: https://www.donkarl.com/?aek
Access DevCon Vienna: https://www.donkarl.com/devcon
Access Forever: https://www.accessforever.org
Access News: https://www.youtube.com/playlist?list=PLVCeBbJIMDvdJ8ghMbEakJ6_EQyvy... |