Guten Morgen,
ich habe gestern das Forum entdeckt und gleiche eine Frage.
Was notes angeht bin ich völlig frisch und unbeleckt.
Ich habe habe mir eine kleine Musikdatenbank gebaut und komme an einem Punkt nicht weiter.
Vielleicht kann man mir hier helfen?
Also, ich habe eine Ansicht von Dokumenten, in denen ich alle Titel und Komponisten anzeige.
Jetzt möchte ich aber aus dieser Ansicht alle löschen was doppel ist. (also die Dokumente löschen).
Die Ansicht "ALLETRACKS" zeigt mir alle Titel. Spalten: titel, komponist
Für jeden Titel gibt es ein Dokument mit diversen angaben zu Komponist, Jahr,....
Nun hatten aber einige CDs mehrere Titel von diversen Komponisten und somit habe ich nun einige Titel doppelt.
Diese möchte ich entfernen.
Mit dem Code unten hatte ich es versucht aber ich bekomme immer einen Fehler: "Function Requires a valid ADT argument"
Hatte schon versucht statt mit getnthdocument mit getnextdocument zu arbeiten und dann das doc temporär zwischen zu speichern wegen dem löschen... aber dann sagte notes er kann nicht im index finden.
Wenn also einer helfen mag, schon mal danke im vorraus.
Dave
Sub Initialize
Print "Start DeleteDouble"
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim tempDocCol As NotesDocumentCollection
Dim tempDoc As NotesDocument
ReDim aSearch(1) As variant
Set db = s.Currentdatabase
Set view = db.Getview("ALLETRACKS")
Call view.Refresh()
Set doc = view.Getfirstdocument()
Dim Index As long
While Not doc Is Nothing
aSearch(0) = doc.getitemvalue("titel")(0)
aSearch(1) = doc.getitemvalue("komponist")(0)
Set tempDocCol = view.Getalldocumentsbykey(aSearch, true)
If tempDocCol.Count > 1 Then
Index = 1
Set tempDoc = tempDocCol.Getnthdocument(Index)
While Not tempDoc Is Nothing
Call tempDoc.Remove(True)
Set tempDoc = tempDocCol.Getnthdocument(Index)
Index = Index+1
Wend
End If
Set doc = view.Getnextdocument(doc)
Wend
Print "Ende DeleteDouble"
End Sub