2016-05-06 8 views
0

Meine Datenbank öffnet beim Starten ein bestimmtes Formular und überprüft den Benutzernamen. Wenn sie nicht mit dem übereinstimmt, in dem sie codiert ist, protokolliert sie die Benutzer Informationen und kickt sie aus der Datenbank.Beschränken des Zugriffs auf die Datenbank basierend auf Environ ("Benutzername")

Meine Frage ist, kann ich VBA verwenden, um zu überprüfen, ob der aktuelle Benutzer - Environ ("USERNAME") - eine von wenigen Zellen in einer Tabelle übereinstimmt und dann meinen Code basierend auf dem Ergebnis ausführen.

Tabellenname ist "AccessListing" und die Zeile "IDNUM" enthält die wenigen Mitglieder USERNAME.

Mein Argument ist, weil ich nicht immer in meiner Position arbeiten werde, also versuche ich, es narrensicher zu machen. Auf diese Weise, wenn ich gehe, wird die nächste Person es nicht aufbocken.

+1

Wenn Sie dem doppelten Link zu der Antwort folgen, achten Sie besonders auf den ersten Kommentar zu dieser Frage und auf die angenommene Antwort: Es gibt keine Sicherheit mit Access-Datenbanken. Und Sie sollten niemals einer Umgebungsvariablen vertrauen. – Leviathan

+0

Ein besserer Weg als 'Environ (" USERNAME ")' ist 'CreateObject (" WScript.Network "). UserName', siehe http://stackoverflow.com/q/34352511/3820271 – Andre

Antwort

0
if Dcount("IDNUM","AccessListing","IDNUM = '" & Environ("USERNAME") & "'") > 0 then 
'do something when user is in list 
else 
'do something when user not in list 
endif 

bewusst sein, dass Environ ("username") ist nicht sicher, es manipuliert werden könnte!

Verwandte Themen