thisDoc ist global deklariert.
Genau das meine ich mit zu wenig und auch noch die falschen Informationen. Das gehört einfach dazu.
So und was deine Neuberechnung der Positionen angeht:
Dim collection As NotesDocumentCollection
Dim docDetail As NotesDocument
Dim olddocdetail as notesdocument
Dim viewForRefresh As NotesView
dim view2 as NotesView
Dim strPos As String
Dim i As Integer
Set viewForRefresh = db.GetView( "(BestellPositionen)" )
Set view2 = db.GetView( "(BestellPositionenByKey)")
HIER SIND LAUFZEITPROBLEME BEI VIELEN DOKUMENTEN IN DER DATENBANK ZU ERWARTEN
Call view2.Refresh()
Set collection = view2.GetAllDocumentsByKey(thisDoc.UniversalID)
Select Case collection.Count
Case 0:
Msgbox "Keine Position vorhanden.", 48, db.title
Case 1:
Set docDetail = collection.GetFirstDocument
Call docDetail.Remove (True)
Thisdoc.LastDetailPos = 0
Call thisdoc.Save(True,False)
Case Else:
strPos = Inputbox$( "Welche Position löschen?", "Position löschen", "1" )
If strPos <> "" Then
Call view2.Refresh()
Set docDetail = view2.GetDocumentByKey( thisDoc.UniversalID + "-" + strPos )
Call docDetail.Remove( True)
End If
set docdetail = collection.getfirstdocument()
do while not docdetail is nothing
set olddocdetail = docdetail
UMWANDELN WENN KEIN STRING ->
if docdetail.pos(0) > StrPos
Docdetail.pos = docdetail.pos(0) -1
end if
set docdetail = collection.getnextdocument(olddocdetail)
Enddo
UND WENN DU PARTOUT DIE ANZAHL DER POSITIONEN SPEICHERN WILLST
Thisdoc.LastDetailPos = ThisDoc.LastDetailPos(0) - 1
DANN DAS THISDOC APSPEICHERN WEIL ES JA BACKEND IST
Call ThisDoc.Save(True,False)
End Select
Und hier musst du nur noch das UIdoc wieder in den Voerdergrund holen. Du hast ja schließlich im Backend gearbeitet.
Damit ist das sauber strukturiert und kein überflüssiger Code drin.
wobei es immer noch Performance Probleme geben wird wenn du einige Tausend Dokumente in der Datenbank drin hast.Für die Blumen brauchst du dich nicht bedanken, in diesem Fall hast du sie verdient. So resistent gegenüber Aufforderungen sich klarer auszudrücken war bis jetzt noch niemand.Thomas