ich lese beim Öffnen meiner Datenban (Access 2003) die DLL32 aus und möchte nur die drei Mitarbeiter mit der darin beschriebenen Personalnummer zulassen. Bei allen anderen soll die Datenbank und Access sofort wieder geschlossen werden.
Leider funktioniert das nicht ganz, ich erhalte ebenfalls die Fehlermeldung und werde rausgeworfen !
Hat das mit dem „Or“ zu tun ? - Denn bei nur einer Personalnummer funktioniert das…
so:
If fOSUserName „488554“ Or „490956“ Or „935840“ Then
MsgBox „Sie sind vom Administrator nicht berechtigt diese Datenbank zu bearbeiten !“ _
& Chr(13) & „Die Datei wird daher geschlossen.“
Quit
Else
fOSUserName = vbNullString
End If
Wenn ich mehrere Personalnrn. zulassen will, dann mißachtet er
die If-Schleife !
das ist, mit Verlaub, eine nutzlose Aussage. Was heißt missachten? Anweisungen werden durchlaufen, bestimmte Zweige je nach Datenkonstellation halt nicht.
Zeig bitte die Anweisung, wie sie im Programm steht, dann kann man das prüfen.
Ok, verstehe…
…
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If (lngX > 0) Then
fOSUserName = Left$(strUserName, lngLen - 1)
If (fOSUserName „488554“)Or(fOSUserName „490956“)Or (fOSUserName „935840“) Then
MsgBox „Sie sind vom Administrator nicht berechtigt diese Datenbank zu bearbeiten !“ _
& Chr(13) & „Die Datei wird daher geschlossen.“
Quit
Else
'fOSUserName = vbNullString
End If
Hallo Ralf,
bei diesen Personalnummern als „fOSUserName“ soll keine MsgBox erscheinen, sondern die If-Schleife auf die Else Anweisung wieterspringen.
Alle die sich mit mit anderer Personalnummer anmelden sollen die MsgBox erhalten.
Wenn ich das ganze mit nur einer Personalnummer durchspiele funktioniert das.
Irgend etwas mach ich also bei dem „Or“ falsch…