Forums Neueste Beiträge
 

Index außerhalb des gültigen Bereichs

16/05/2008 - 13:19 von Winfried Sonntag [MVP] | Report spam
Hallo zusammen,

ich hab ein kleines Programm in VB6SP5, das auf einem W2K3SP2-Server als
Dienst làuft. Mittels Timer von 00:00 bis 06:00 Uhr stündlich. Alle
Fehlermeldungen werden zentral in eine TXT geschrieben. In
unregelmàssigen Abstànden bekomme ich den Fehler 9 Index außerhalb des
gültigen Bereichs aus den unterschiedlichsten Funktionen in die TXT
geschrieben. Momentan làuft das Programm noch zum testen auf einer
virtuellen Maschine.

Beispiel von heute Nacht:
16.05.08 | 06:00:00 | Fehler: 9 | Source: KommSystemeD
md_Verarbeitung.DateienServer() | Index außerhalb des gültigen Bereichs

Die Funktion DateienServer wird jede Stunde aufgerufen und hat um 02:00
auch erfolgreich Dateien kopiert, vorher waren einfach noch keine zum
kopieren vorhanden. Warum wird um 06:00 Uhr die o.g. Fehlermeldung
generiert?

'///Start
Sub DateienServer()
On Error GoTo Fehler

Dim DatenPfad As Object
Dim i As Integer
Dim Extension As String
Dim Dateiname As String
Dim Wert As String
Dim Tabelle As String
Dim Counter As String
Dim Prüfung As String
Dim Ergebnis As String
Dim Text As String
Dim VKB As String

Set DatenPfad = Application.FileSearch

With DatenPfad
.LookIn = DE_OUT_
.FileName = "*.*"
If .Execute > 0 Then
'"Dateien für die Reisenden werden gesucht..."
For i = 1 To .foundfiles.Count
Extension = ""
Dateiname = .foundfiles(i)
md_Datenpfade.Name Dateiname, Wert, Extension
If Extension <> "txt" And Extension <> "zip" Then
Extension = ""
Tabelle = "SELECT * FROM T_OUT"
'Punkt suchen
md_Datenpfade.Name Dateiname, Wert, Extension
Counter = Extension
'"Dateien für die Reisenden werden gezippt..."
md_Zippen.Zip Dateiname, Wert & Extension & ".zip"

Prüfung = Dir(Wert & Extension & ".zip", vbDirectory)
'Protokollierung
If Prüfung = "" Then
Ergebnis = "FEHLER"
Text = " " & Dateiname & vbTab & vbTab & Ergebnis
Else
Ergebnis = "OK"
Text = " " & Dateiname & vbTab & vbTab & Ergebnis
Kill Dateiname
End If
VKB = ""
'in der DE_Datenbank
md_Protokollierung.Protokoll Wert, Text, Tabelle, Ergebnis, VKB
End If
Next i
Else
'"Keine Dateien für die Reisenden gefunden..."
End If
End With


Exit Sub

Fehler:
With Err
.Raise .Number, .Source & " " & mModName & ".DateienServer()", _
.Description
End With
End Sub
'////ENDE

Wie kann ich das Problem lösen bzw. den Fehler finden? Vielen Dank schon
im voraus.

Servus
Winfried
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
Win2000-FAQ: http://w2k-faq.ebend.de
GPO's: http://www.gruppenrichtlinien.de
W2K Up2date: http://home.arcor.de/jterlinden/index.htm
 

Lesen sie die antworten

#1 Christian Zimmermann
16/05/2008 - 13:51 | Warnen spam
Hallo Winfried,

Winfried Sonntag [MVP] schrieb:

ich hab ein kleines Programm in VB6SP5, das auf einem W2K3SP2-Server als
Dienst làuft. Mittels Timer von 00:00 bis 06:00 Uhr stündlich. Alle
Fehlermeldungen werden zentral in eine TXT geschrieben. In
unregelmàssigen Abstànden bekomme ich den Fehler 9 Index außerhalb des
gültigen Bereichs aus den unterschiedlichsten Funktionen in die TXT
geschrieben. Momentan làuft das Programm noch zum testen auf einer
virtuellen Maschine.

Beispiel von heute Nacht:
16.05.08 | 06:00:00 | Fehler: 9 | Source: KommSystemeD
md_Verarbeitung.DateienServer() | Index außerhalb des gültigen Bereichs

Die Funktion DateienServer wird jede Stunde aufgerufen und hat um 02:00
auch erfolgreich Dateien kopiert, vorher waren einfach noch keine zum
kopieren vorhanden. Warum wird um 06:00 Uhr die o.g. Fehlermeldung
generiert?


Dateiname = .foundfiles(i)



wenn der Fehler wirklich innerhalb dieser Sub aufgetreten ist, sehe ich
lediglich diese Zeile als potentiellen Verursacher. Um sicherzugehen
kannst du ja jede Codezeile mit einer Zeilennummer versehen, die mit Erl
ausgewertet und in die Textdatei geschrieben werden kann.

Es sieht allerdings so aus, als hàttest du es hier mit einer Collection
zu tun. Was ist das für ein Objekt Application.FileSearch? Kann es sein,
dass wàhrend der Abarbeitung der .foundfiles() die Collection asynchron
bearbeitet wird und evt. die Liste verkleinert wird?

Gruß

Christian

Ähnliche fragen