Hallo!
Folgende Situation:
Ich habe eine Maske zum Erstellen von Dokumenten.
Beim Speichern eines Dokumentes möchte ich abfragen, ob es bereits ein Dokument mit einem bestimmten Feldwert bereits gibt.
Falls nein, wird gespeichert, falls ja, wird der User über eine Messagebox gefragt, ob er das vorhandene Dokumnet überschreiben will, oder nicht. Klickt er ja an, so soll das neue Dokument das alte überschreiben.
Ich wollte das dadurch lösen, dass das alte Dok gelöscht und das neue gespeichert wird:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim altWoche As Variant
Dim aktWoche As Variant
Dim boxType As Long, answer As Integer
boxType& = MB_YESNO + MB_ICONQUESTION
Dim msg As String
msg = |Es ist bereits Dokument vorhanden!
Möchten Sie das bestehende Dokument überschreiben?|
Set db = s.CurrentDatabase
Set view = db.GetView("vw_All")
Set doc = view.GetFirstDocument
While Not (doc Is Nothing)
altWoche = doc.GetItemValue( "Woche" )
aktWoche = source.FieldGetText( "Woche" )
If (altWoche(0) = aktWoche) Then
value% = Messagebox(msg, boxType&, "Fortsetzen?")
If (value% = 6) Then
Call doc.remove(True)
continue = True
Else
continue = False
End If
End If
Set doc = view.GetNextDocument(doc)
Wend
End Sub
Dabei habe ich jetzt aber das Problem, dass bei
Set doc = view.GetNextDocument(doc)
die Referenz zum letzten (gelöschten) Doc fehlt.
Wie kann man denn sowas am besten lösen?
Danke und Gruß,
Freezer