Domino 9 und frühere Versionen > Entwicklung
subscript out of range
sinus:
hallo,
seit neuestem tritt die fehlermeldung "subscript out of range" beim anlegen eines neuen benutzers im adressbuch auf.
es wurden keine änderungen an der db vorgenommen.
was kann ich tun um den fehler zu lokalisieren?
danke&gruss sven
diali:
den Debugger einschalten und schauen, wo der Fehler auftritt.
diali:
hab die priv. Nachricht mal hierher verschoben.
--- Zitat von: sinus ---danke für den tip, der debugger bleibt bei:
objekt: person (maske)
ereignis: querysave
stehen
ein gelber pfeil zeigt auf:
myArray_members(z)=new_emailaddi
ich verstehe aber nicht wieso er das auf einmal macht, hier wurde nichts geändert...hast du eine idee??
vielen dank & gruss
--- Ende Zitat ---
Schau dir mal die Dimension des Arrays und z an. z dürfte außerhalb des Arrays liegen.
koehlerbv:
--- Zitat von: sinus am 06.09.05 - 12:23:35 ---es wurden keine änderungen an der db vorgenommen.
--- Ende Zitat ---
Und was heisst "Es wurde keine Änderungen an der DB vorgenommen" ? Original sind die geposteten Zeilen jedenfalls nicht.
Bernhard
sinus:
ich meine damit, dass an der db seit ca. 1 jahr nichts mehr geändert wurde, natürlich ist sie modifiziert...das sehe ich auch gerade :)
auch an der dimension des arrays wurde nicht herumgespielt. ich poste mal den kompletten querysave:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Messagebox "Bitte haben Sie einen Moment Geduld."
Dim s As New notessession
Dim db2 As notesdatabase
Dim view_gruppen As notesview
Dim doc As notesdocument
Dim doc_suche As notesdocument
Dim suche_item As notesitem
%REM
Update der Einträge in den Mailgruppen
%END REM
If Source.EditMode Then
If source.document.mailaddress(0) ="" Then
Call source.fieldsettext("mailaddress" , "no email")
Call source.fieldsettext("Fullname" , "no email")
Else
source.document.Fullname = source.document.mailaddress
'Call source.save
End If
'If source.document.Fullname(0)="" Then
'source.document.Fullname = source.document.mailaddress
'End If
Call Source.Refresh
End If
Set db2 = s.currentdatabase
Set doc = source.document
new_emailaddi = doc.mailaddress(0)
new_email = doc.getitemvalue("Mailaddress")
If new_email(0) <> old_email(0) Then
Messagebox "Bitte haben Sie einen Moment Geduld. Die Mail-Gruppen müssen abgeglichen werden. Vielen Dank für Ihr Verständnis."
'setzen der Ansicht Gruppen
Set view_gruppen = db2.getview("Groups")
'Erstes dokument in Ansicht Gruppen
Set doc_suche = view_gruppen.getfirstdocument
While Not (doc_suche Is Nothing)
Set suche_item = doc_suche.getfirstitem("Members")
Set vgl_item = doc_suche.getfirstitem("ListName")
If suche_item.contains( old_emailaddi )Then
'bestimmen der Anzahl der Mitglieder in dieser Gruppe, die das dokument fand
numElements = Ubound(doc_suche.Members) - (Lbound(doc_suche.Members)-1)
'vereinbaren eines Feldes
Dim myArray_members() As String
If numElements>1 Then
'Dimensionierung des Feldes
Redim myArray_members(numElements-1)
End If
'suchen, der position, an der der Person Mitglied dieser Gruppe ist
z = 0
Forall k In doc_suche.members
'Wenn Person und aktuelles Gruppenmitglied nicht übereinstimmen, ablegen des Gruppenmitgliedes in dem Array
If Not doc_suche.members(z) = old_emailaddi Then
myArray_members(z) = doc_suche.members(z)
z = z+1
Else
myArray_members(z) = new_emailaddi
z = z+1
End If
End Forall
'Das Array wird an die Stelle des Inhaltes des Feldes gesetzt und das Dokument wird abgespeichert
suche_item.values = myArray_members
Call doc_suche.save(True,True)
End If
Set doc_suche = view_gruppen.getnextdocument (doc_suche)
Wend
End If
updateverteiler Source , Continue
kennzeichen Source
tmp_inpvsart = tb_vs_art
tmp_inp_vsanz = tb_vs_anz
End Sub
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln