Wir führen öfters Abfragen auf unserem Server durch. Dabei kommt es häufig vor, dass Dateien aufgerufen und geöffnet werden, die bereits durch andere Mitarbeiter geöffnet sind. Kennt jemand eine Abfrage, mit der man vor öffnen der jeweiligen Datei abfragen kann, ob die entsprechende Datei bereits geöffnet ist?
Wir führen öfters Abfragen auf unserem Server durch. Dabei
kommt es häufig vor, dass Dateien aufgerufen und geöffnet
werden, die bereits durch andere Mitarbeiter geöffnet sind.
Kennt jemand eine Abfrage, mit der man vor öffnen der
jeweiligen Datei abfragen kann, ob die entsprechende Datei
bereits geöffnet ist?
Hallo Aiko,
ein „Ede“ hat mal diesen Code gebastelt:
Function TestOpen(sFile As String) As Integer
If Dir(sFile) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sFile For Random Access Read Lock Read Write As #99
Close #99
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
wobei 0…datei ist nicht geöffnet
1…datei ist bereits geöffnet
2…datei fehlt
Danke für die Antwort. Ich habe versucht, die Funktion bei uns einzubauen und bekomme als Ergebnis (wahrheitsgemäß) heraus, dass TestOpen = 1 ist (weil ich die Testdatei geöffnet habe). Mein Problem ist nur, dass ich den Wert von TestOpen nicht aus der Funktion in den normalen Prozess übergeben kann. Ich muss dazu gestehen, dass ich mit Funktionen nicht so viel arbeite. Wie kann ich also das Ergebnis (sprich den Wert von TestOpen) verwenden?
vielen Dank für die Antwort. Ich habe inzwischen noch eine andere Möglichkeit gefunden, die läuft. Ich weiß aber noch nicht, welche Variante ich für (funktions)sicherer halte.
zur Info: Ich hatte folgendes probiert:
If TestOpen=1 then
msgbox …
Warum ich dann nichts angezeigt bekommen habe ist mir jetzt klar.