Falls sich im System starre Kopplungen befinden, kommt es zum Abbruch mit der Fehlermeldung "Index out of range", der Fehler tritt in folgender Zeile auf:
Ergebnisanzahl = RSLRes.rsGetIFCount(j, AT_INDEX)
(aus Beispieldatei rs-com.xls)
Bei j Stäben und k starren Kopplungen kommt es offenbar beim j-k Schleifendurchlauf zum Abbruch.
In die Tabelle werden Stäbe, die den Typ "starre Kopplung" besitzen, eingetragen, wodurch ich annehme, dass bei der starren Kopplung die Ergebnisanzahl > 0 ist, sonst müsste die auf die o.a. Zeile folgende Bedingung
If Ergebnisanzahl > 0 Then etc.
den Wert False ergeben und es dürfte zu keinem Eintrag kommen.
Ursache des Problems könnte der Stabindex sein, offenbar kommt es nun zu einer Umreihung der Zuordnung der Schnittgrößen, denn in der Tabelle werden nun fälschlicherweise zur betroffenen Stabnummer die Schnittgrößen des folgenden Stabes eingetragen usw. Damit kann ich mir auch den Überlauf des Index erklären, denn für die letzten Stäbe passt dann der Index nicht mehr mit der Stabzahl überein.
Meine Frage: Kann mir jemand mehr Hintergrundinformation zu dem Problem geben. Als Lösung fällt mir im Moment nur folgendes ein:
For j = 0 To Stabanzahl - 1
If Stab(j).Type <> 6 Then '==> Neu: Wenn keine starre Kopplung
Ergebnisanzahl = RSLRes.rsGetIFCount(j, AT_INDEX)
If Ergebnisanzahl > 0 Then
ReDim schnittgr(Ergebnisanzahl - 1) As RS_RESULTS_IF
usw.
.
.
.
End If
Next
Vielleicht gibt es aber auch eine elegantere Lösung.
Danke und freundliche Grüße,
Stefan Graf
Ergebnisanzahl = RSLRes.rsGetIFCount(j, AT_INDEX)
(aus Beispieldatei rs-com.xls)
Bei j Stäben und k starren Kopplungen kommt es offenbar beim j-k Schleifendurchlauf zum Abbruch.
In die Tabelle werden Stäbe, die den Typ "starre Kopplung" besitzen, eingetragen, wodurch ich annehme, dass bei der starren Kopplung die Ergebnisanzahl > 0 ist, sonst müsste die auf die o.a. Zeile folgende Bedingung
If Ergebnisanzahl > 0 Then etc.
den Wert False ergeben und es dürfte zu keinem Eintrag kommen.
Ursache des Problems könnte der Stabindex sein, offenbar kommt es nun zu einer Umreihung der Zuordnung der Schnittgrößen, denn in der Tabelle werden nun fälschlicherweise zur betroffenen Stabnummer die Schnittgrößen des folgenden Stabes eingetragen usw. Damit kann ich mir auch den Überlauf des Index erklären, denn für die letzten Stäbe passt dann der Index nicht mehr mit der Stabzahl überein.
Meine Frage: Kann mir jemand mehr Hintergrundinformation zu dem Problem geben. Als Lösung fällt mir im Moment nur folgendes ein:
For j = 0 To Stabanzahl - 1
If Stab(j).Type <> 6 Then '==> Neu: Wenn keine starre Kopplung
Ergebnisanzahl = RSLRes.rsGetIFCount(j, AT_INDEX)
If Ergebnisanzahl > 0 Then
ReDim schnittgr(Ergebnisanzahl - 1) As RS_RESULTS_IF
usw.
.
.
.
End If
Next
Vielleicht gibt es aber auch eine elegantere Lösung.
Danke und freundliche Grüße,
Stefan Graf
Kommentar