Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TomLudwig am 23.10.03 - 10:17:35

Titel: Schleifenproblem (DO WHILE LOOP)
Beitrag von: TomLudwig am 23.10.03 - 10:17:35
Hallo ich haben folgenden Quellcode:

....
   Set acl = db.ACL   
   Set entry = acl.GetFirstEntry   
   Do While (entry.Name <> "")
      item.appendToTextList(entry.Name)   
      Set entry = acl.GetNextEntry(entry)   
   Loop
...

Es komm die Fehlermeldung: Object Variable not Set

Warum?
Titel: Re:Schleifenproblem (DO WHILE LOOP)
Beitrag von: klaussal am 23.10.03 - 10:19:29
... da wir NOCH nicht hellsehen können, wäre der ganze code schon mal ein anfang...
Titel: Re:Schleifenproblem (DO WHILE LOOP)
Beitrag von: Semeaphoros am 23.10.03 - 10:31:22
... und den Debugger benutzen, der sagt einem dann sofort, welche Var nicht gesetzt ist. Wahrscheinlich die DB selber
Titel: Re:Schleifenproblem (DO WHILE LOOP)
Beitrag von: TomLudwig am 23.10.03 - 10:34:09
Der Fehler kommt unten beim Loop. Die Datenbank usw. ist alles gesetzt. Er liest mir auch alle ACL einträge aus. Aber beim letzen will er aufs nächste springen und das klapt nicht.
Wie kann ich das unterbinden bzw. verhindern?
Titel: Re:Schleifenproblem (DO WHILE LOOP)
Beitrag von: Semeaphoros am 23.10.03 - 10:38:16
Do while not (entry is nothing)
Titel: Re:Schleifenproblem (DO WHILE LOOP)
Beitrag von: Axel am 23.10.03 - 10:42:09
Hi,

eigentlich ganz logisch, dass irgendwann die Fehlermeldung kommt. Die kommt genau nach dem letzten Eintrag, denn dann ist entry Nothing, also nicht gesetzt.

Ändere deine Schleife wie folgt:

....
   Set acl = db.ACL  
   Set entry = acl.GetFirstEntry  
   Do While Not (entry Is Nothing)
      If entry.Name <> "" Then Exit Do
      item.appendToTextList(entry.Name)  
      Set entry = acl.GetNextEntry(entry)  
   Loop
...

Ich hab's zwar nicht probiert, sollte aber so funktionieren.


Axel