Hallo Liebe Gemeinde,
ich musste gestern alle Ordner aus einer DB holen. Da es gestern schon spät war habe ich es folgendermaßen über die Propertie .Views gelöst.
| |
| Forall views in db.Views |
| If views.IsFolder then |
| |
| varFolder(Ubound(varFolder)) = Cstr(views.Name) |
| Redim Preserve varFolder(Ubound(varFolder) + 1) |
| |
| end if |
| End Forall |
| |
Das Problem war die Performance. Bei 12 ordner hat das ganze schon 20 Sekunden gedauert.
Gerade habe ich einen viel performanteren Weg gefunden.
| Set nColl = dbMailfile.CreateNoteCollection(False) |
| nColl.SelectFolders = True |
| Call nColl.BuildCollection |
| |
| Dim strNoteID As String |
| Dim strName As String |
| |
| Dim docNote As NotesDocument |
| |
| strNoteID = nColl.GetFirstNoteId |
| |
| Redim varFolder(0) |
| |
| While Not strNoteID="" |
| Set docNote = dbMailFile.GetDocumentByID(strNoteID) |
| |
| varFolder(Ubound(varFolder)) = Cstr(strName) |
| Redim Preserve varFolder(Ubound(varFolder) + 1) |
| |
| |
| strNoteID = nColl.GetNextNoteId(strNoteID) |
| Wend |
Dieser braucht gefühlt unter einer Sekunde für das selbe Ergebnis
Ich hoffe ich konnte damit Jemanden weiterhelfen. Wenn nicht heute, dann vllt in ein paar Jahren