Autor Thema: subscript out of range  (Gelesen 1697 mal)

Offline sinus

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
  • Dumdidum...
subscript out of range
« am: 06.09.05 - 12:23:35 »
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

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: subscript out of range
« Antwort #1 am: 06.09.05 - 12:25:30 »
den Debugger einschalten und schauen, wo der Fehler auftritt.
Gruß
Dirk

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: subscript out of range
« Antwort #2 am: 06.09.05 - 12:40:11 »
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

Schau dir mal die Dimension des Arrays und z an. z dürfte außerhalb des Arrays liegen.
Gruß
Dirk

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: subscript out of range
« Antwort #3 am: 06.09.05 - 12:44:12 »
es wurden keine änderungen an der db vorgenommen.

Und was heisst "Es wurde keine Änderungen an der DB vorgenommen" ? Original sind die geposteten Zeilen jedenfalls nicht.

Bernhard

Offline sinus

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
  • Dumdidum...
Re: subscript out of range
« Antwort #4 am: 06.09.05 - 12:49:17 »
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

Offline sinus

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
  • Dumdidum...
Re: subscript out of range
« Antwort #5 am: 06.09.05 - 13:02:42 »
ich hab mal eine kopie der db erstellt ohne die inhalte mitzukopieren

wenn ich nun in der leeren db eine neue person anlege, kommt die fehlermeldung nicht mehr

also scheint ja irgendwas mit der anzahl der einträge faul zu sein

gibt es denn da diesbzgl. beschränkungen?? in der db\personen sind knapp 10.000 einträge

das würde zumindestens erklären, warum der fehler nun auf einmal aufgetaucht ist (es werden ständig einträge hinzugefügt)

kann ich das problem selbst lösen oder brauche ich einen spezialisten?

gruss

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz