Datenbank Zulassung

Hallo Leute, Hallo Franz,

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

Gruß Christian

so:
If fOSUserName „488554“ Or „490956“ Or „935840“ Then

lol , was soll das denn für eine kette werden ???

fOSUserName „488554“
ok soll ungleich sein

aber dann

Or „490956“

was wird das denn nun ? soll „490956“ der als wahr betrachtet werden ?? wo ist der verlgeich ?

meinst du vielleicht

(fOSUserName „488554“) Or (fOSUserName „490956“) Or (fOSUserName „935840“)

jeeep, genau das meinte ich !

Ich hab das lange nicht mehr gemacht und hatte noch soetwas aus der Case is - methode im Kopf…

Danke !

ahhh - Mist ! das funktioniert doch nicht !!

Wenn ich mehrere Personalnrn. zulassen will, dann mißachtet er die If-Schleife ! :frowning:

Wenn ich nur eine Personalnr. prüfen lasse funktioniert es.

Woran kann das liegen ?

Gruß Christian

Syntax IF-Anweisung
Moin, Christian,

Wenn ich mehrere Personalnrn. zulassen will, dann mißachtet er
die If-Schleife ! :frowning:

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.

Gruß Ralf

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

Else
fOSUserName = vbNullString
End If

Gruß Christian

If (fOSUserName „488554“)Or(fOSUserName „490956“)Or
(fOSUserName „935840“) Then

schön. Und was geht jetzt nicht? Was erwartest Du denn?

Gruß Ralf

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…

Christian

Hallo,

If Not (fOSUserName = „488554“ Or fOSUserName = „490956“ Or fOSUserName = „935840“) Then

Gruß
Franz, DF6GL

Moin, Christian

Irgend etwas mach ich also bei dem „Or“ falsch…

:smile:))

Das heißt binäre Algebra: Schreib mal zu „NOT a OR NOT b“ eine Wahrheitstabelle. Dämmert’s?

Falls NOT zu heikel ist, hilft vielleicht

 If a or b then
 ' basst scho
 else
 Msgbox "Du nicht!"
 end if 

Gruß Ralf

…to bee, or not to bee…

Danke - hat „geschnasselt“ !

Christian

Danke Franz,

haut einwandfrei hin !

Gruß Christian