Domino 9 und frühere Versionen > Entwicklung

variant does not contain object

(1/2) > >>

lio:
Hallo Leute,

ich verstehe nicht, warum er mir immer die Fehlermeldung:

varian does not contain object

anzeigt.

Folgendes Script ist (leicht abgewandelt) aus der Hilfe Datei von Notes. Es "liegt" im Ereignis Queryopen einer Maske.

Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim uidoc As NotesUIDocument
Dim acl As NotesACL    
Dim entry As NotesACLEntry
Set db = session.CurrentDatabase
Set acl = db.ACL
Set entry = acl.GetEntry( session.CommonUserName )
If entry.IsRoleEnabled( "[BWA]" ) = True Then End

lio ??? :D

motte:
Hallo lio,

wenn ich Dich richtig verstanden habe, willst Du das Öffnen des Dokumentes nicht zulassen, wenn der Benutzer nicht eine Bestimmte Rolle hat?


Versuchs mal hiermit:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim acl As NotesACL    
    Dim entry As NotesACLEntry
   
    Set db = session.CurrentDatabase
    Set acl = db.ACL
    Set entry = acl.GetEntry( session.Username )
    If entry.IsRoleEnabled("[BWA]" ) Then
         continue = True ' es geht weiter
    Else
         continue    = False  '   query open wird abgebrochen
    End If
   
   
End Sub


Ich hoffe es klappt!

lio:
Hi Motte,

erstmal danke für Deine Mühe. Ich habe Dein Script mal ausprobiert und es kam folgende Meldung:

Object Variable not set

Ich kann mir das einfach nicht erklären, wo das Problem in diesem Fall ist????

Lio  :P

Axel:
Hi,

um zu prüfen, ob für den angemeldeten User eine bestimme Rolle gesetzt ist, habe ich mal folgende Funktion geschrieben.

Obige Methode über die ACL hat den Nachteil, dass Rollen, die für eine Gruppe gesetzt wurden, in denen der User enthalten ist nicht erkannt werden. Mit der Funktion hier, werden auch diese erkannt.



--- Zitat ---
%REM
===================================================================
Funktion: RoleEnabled
---------------------------------------------------------------------------------------------------------------------------------------
Beschreibung :
Diese Funktion prüft ob eine bestimmte Rolle einem User zugeordnet ist. Funktioniert
auch wenn die Rolle einer Gruppe zugeordnet ist, in der der User Mitglied ist.
----------------------------------------------------------------------------------------------------------------------------------------
Parameter und Rückgabe:
Parameter:
Bezeichnung          Typ                         Beschreibung
sRole                      String                      Name der Rolle
Rückgabe:
True (1) wenn Rolle gesetzt, sonst False
----------------------------------------------------------------------------------------------------------------------------------------
Benötigte Routinen und Bibliotheken:
Routine                                           Bibliothek

----------------------------------------------------------------------------------------------------------------------------------------
Erstellt am 01.02.2001 durch Axel Matthies
----------------------------------------------------------------------------------------------------------------------------------------
Letzte Änderung am:
===================================================================
%END REM

Function RoleEnabled(sRole As String) As Integer
     
     Dim vResult As Variant
     
     vResult = Evaluate(|@IsMember("| & sRole & |"; @UserRoles)|)
     
     If vResult(0) = 1 Then
           RoleEnabled = 1
     Else
           RoleEnabled = 0
     End If  'If vResult(0) = 1
     
End Function

--- Ende Zitat ---


Beispiel-Aufruf:

If RoleEnabled("[Administration]") Then
 'Rolle gesetzt
Else
 'Rolle nicht gesetzt
End If

Ich hoffe das hilft Dir weiter.

Axel

Meff:
Hi lio,

welche Berechtigung hast Du den auf die DB ?

Meff ;)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln