Access: Butto sperren

Guten Tag,

ist es möglich, einen Button per Makro zu sperren?

Ich habe eine Benutzerverwaltung mit Berechtigungen. Nun soll der Button nur bei einer bestimmten Berechtigung aktiviert sein.

Vielen Dank

Hallo,

ich würde dieses „Problem“ über eine Bedingung sichtbar oder unsichtbar schalten aus der Welt bringen. Denn wenn nicht berechtigt, brauch er/sie es auch garnicht erst sehen - oder?

Konkret: Im Formularentwurf
Button standardmäßig auf Sichbar NEIN

Formular/beimAnzeigen => Makro

Makro: wenn Berechtigung ok dann Aktion SetzenWert => Feld: Formulare![deinFormularname]![NameButton].[Sichtbar] => Ausdruck : JA

Sollte so funz

MfG
g.austen

ist es möglich, einen Button per Makro zu sperren?
Ich habe eine Benutzerverwaltung mit Berechtigungen. Nun soll
der Button nur bei einer bestimmten Berechtigung aktiviert
sein.

Hallo Riga,
ja, das geht selbstverständlich.
Setze z.B. beim „Öffnen“-Ereignis eines Formulars eine Prüfung, ob der angemeldete User das Recht zum Verwenden des Buttons hat. Falls nicht, deaktiviere ihn mit

me.btnMeinKnopf.enabled = false

Die Erfahrung hat aber gezeigt, dass es manchmal sinnvoller (und vor allem einfacher) ist, Buttons und Eingabefelder nicht an-und abzuschalten, um User von Eingaben oder Klicks fernzuhalten.
Statt kann man bei z.B. bei jedem Klick-Ereignis als erstes eine Funktion wie

f\_CheckRight('WeiterAufFormularXY')

aufrufen. Gibt diese ein „false“ zurück, darf der Anwender das nicht und das klickereignis kann entsprechend reagieren (z.B. durch eine Ausgabe/MessageBox).

Function f\_CheckRight(strCheckForWhat As String) As Boolean
'f\_CheckIfUserIsAllowedToClickOn\_strCheckForWhat ist eine Funktion, die z.B.
'in einer Tabelle nachsieht, ob der User ein Recht hat

 If f\_CheckIfUserIsAllowedToClickOn\_strCheckForWhat(strCheckForWhat) Then
 f\_CheckRight = True
 Else
 MsgBox "Dazu haben Sie keine Berechtigung.", vbInformation, "Fehler"
 f\_CheckRight = False
 End If
End Function


Private Sub cmdWeiter\_Click()
 If f\_CheckRight("FormEingabe.CmdWeiter") = True Then
 'lass den User machen
 End If
End Sub