karlchristian
Goto Top

Access 2010 VBA Prüfen ob bestimmte Dateien in einem Verzeichnis vorhanden sind , wenn ja dann x sonst nein dann y ...

Hallo wie bekomme ich es am besten hin, das ich in einem Verzeichnis Dateien anhand einer von mir vorgegeben Liste Prüfen lasse, ob diese vorhanden sind.

Ich möchte selber Dateinamen vorgeben, welche in einem Verzeichnis geprüft werden sollen, ob diese vorhanden sind,
falls alle Deteien vorhanden sind dann
x
falls nicht, soll er den Dateinamen ausgeben der fehlt.

vielleicht kann mit jemand mitteilen wie ich dieses per VBA lösen kann (PS: ich arbeite mit Access 2010)

Danke für eure Hilfe

Content-Key: 235840

Url: https://administrator.de/contentid/235840

Printed on: April 19, 2024 at 02:04 o'clock

Member: colinardo
colinardo Apr 17, 2014 updated at 10:00:32 (UTC)
Goto Top
Hallo karlchristian,
kein Problem, kannst du z.B. so machen. In Zeile 2 den Ordner angeben und in Zeile 3 die Dateien welche geprüft werden sollen.
Dim ordner, files
ordner = "C:\temp"  
files = Array("test.csv","test2.csv")  
Set fso = CreateObject("Scripting.Filesystemobject")  

For Each file In files
	If Not fso.FileExists(fso.BuildPath(ordner,file)) Then
		MsgBox "Die Datei '" & file & "' existiert nicht!",vbExclamation  
	End If
Next
set fso = Nothing
Grüße Uwe
Member: karlchristian
karlchristian Apr 17, 2014 at 10:31:46 (UTC)
Goto Top
Hallo Uwe,
danke für die Antwort,

habe nur das Problem, dass der Dateinamen immer unterschiedlich ist, und ich nur einen Teilbereich prüfen möchte,

wie geht dieses den?

z.b. Datei Test1*, Test2* ect..
Im Moment sagt er nur, dass er die Dateien nicht findet,
obwohl eine test1-23445; Test2-34455 ect vorhanden ist.

Danke nochmal.
Gruss Karl
Member: colinardo
colinardo Apr 17, 2014, updated at Jun 05, 2014 at 08:43:32 (UTC)
Goto Top
z.B. so,
Option Compare Text
Dim ordner, files, gefunden
ordner = "C:\temp"  
files = Array("test1*","test2*")  
Set fso = CreateObject("Scripting.Filesystemobject")  

For Each file In files
	gefunden = False
	For Each f In fso.GetFolder(ordner).Files
		If f.Name like file Then
			gefunden = True
                        Exit For
		End If 
	Next
	If Not gefunden Then
		MsgBox "Eine Datei dir mit '" & file & "' anfängt, existiert nicht.",vbExclamation  
	End If
Next
Set fso = Nothing

Eine andere Methode ohne das FileSystemObject ist der dir() Befehl:

Dim ordner, files, pattern
ordner = "C:\temp"  
files = Array("test1*","test2*")  

For Each pattern in files
    If Dir(ordner & "\" & pattern) = "" then  
        MsgBox "Eine Datei mit dem Muster '" & pattern & "' wurde nicht gefunden"  
    End If
Next


Grüße Uwe
Member: karlchristian
karlchristian Apr 17, 2014 at 11:57:30 (UTC)
Goto Top
vielen Dank,

das hat mir weiterhrolfen