Einzelschritt vs. Komplettdurchlauf

20/11/2007 - 09:53 von Oliver | Report spam
Hallo NG,

ich hab ein Phànomen, dem ich nicht auf die Schliche komme: Ich prüfe in
einer Prozedur, ob eine bestimmte Datei geöffnet ist oder nicht. Wenn die
Datei offen ist, wird eine Schleife durchlaufen, bis die Datei geschlossen
wurde. Dann geht es weiter.

Wenn ich die Prozedur zzum Testen schrittweise mit F8 durchlaufe, klappt
alles wie es soll. Wird die Prozedur in einem Rutsch abgearbeitet, tut sie
so, wie wenn die Datei nicht offen wàre!?!?!?

Hier der Code:
**************************************************
Sub Ist_Datei_offen(var_Dateiname)
Dim var_File As Integer

On Error Resume Next

Do
Err.Clear
'Fehlernummer löschen
var_File = FreeFile 'freien
Filehandle holen
Open var_Dateiname For Binary Access Read Lock Read As #var_File
'Datei öffnen und dabei Fehlercode ermitteln
Close #var_File 'Datei
wieder schließen

Select Case Err.Number 'Auswertung
der Fehlernummer
Case 0
Case 70: MsgBox var_Dateiname + "Datei ist bereits offen! Bitte
schließen und auf OK klicken."
Case Else: MsgBox "Unbekannter Fehler"
End Select
MsgBox Err.Number 'nur zum
Test --> spàter raus damit
Loop Until Err.Number = 0 'in der
Schleife bleiben, bis die Datei geschlossen ist
End Sub
**************************************************
Wàre toll, wenn mir jemand von euch sagen könnte, wo der Haken sich
versteckt.

Übrigens làuft das alles unter Office 2000 - falls es ne Rolle spielen
sollte.

Danke und liebe Grüße
 

Lesen sie die antworten

#1 Wolfgang Habernoll
20/11/2007 - 10:54 | Warnen spam
Hallo Oliver

"Oliver" schrieb im Newsbeitrag
news:GVw0j.303555$
Hallo NG,

ich hab ein Phànomen, dem ich nicht auf die Schliche komme: Ich prüfe in
einer Prozedur, ob eine bestimmte Datei geöffnet ist oder nicht. Wenn die
Datei offen ist, wird eine Schleife durchlaufen, bis die Datei geschlossen
wurde. Dann geht es weiter.

Wenn ich die Prozedur zzum Testen schrittweise mit F8 durchlaufe, klappt
alles wie es soll. Wird die Prozedur in einem Rutsch abgearbeitet, tut sie
so, wie wenn die Datei nicht offen wàre!?!?!?

Hier der Code:
**************************************************
Sub Ist_Datei_offen(var_Dateiname)
Dim var_File As Integer

On Error Resume Next

Do
Err.Clear
'Fehlernummer löschen
var_File = FreeFile 'freien
Filehandle holen
Open var_Dateiname For Binary Access Read Lock Read As #var_File
'Datei öffnen und dabei Fehlercode ermitteln
Close #var_File 'Datei
wieder schließen

Select Case Err.Number 'Auswertung
der Fehlernummer
Case 0
Case 70: MsgBox var_Dateiname + "Datei ist bereits offen! Bitte
schließen und auf OK klicken."
Case Else: MsgBox "Unbekannter Fehler"
End Select
MsgBox Err.Number 'nur zum
Test --> spàter raus damit
Loop Until Err.Number = 0 'in der
Schleife bleiben, bis die Datei geschlossen ist
End Sub
**************************************************
Wàre toll, wenn mir jemand von euch sagen könnte, wo der Haken sich
versteckt.

Übrigens làuft das alles unter Office 2000 - falls es ne Rolle spielen
sollte.



das kann ich nicht sagen, glaube es aber nicht. Der Code ist eigentlich OK, kann
es sein das du einen Dateinamen nimmst zu dem es keine Datei gibt (Schreibfehler
?), dann wird sie vom Code angelegt und ist nicht geöffnet und der Effekt tritt
ein.

mfG
Wolfgang Habernoll

[ Win XP Home SP-2 , XL2002 ]

Ähnliche fragen