Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

FileSystemObject

Begonnen von Umbauwfb, Februar 17, 2022, 10:49:32

⏪ vorheriges - nächstes ⏩

Umbauwfb

Hallo,
ich möchte mit VBA Dateien von einem USB-Stick in ein Verzeichnis kopieren.
Ich dachte die CopyFile-Methode wäre eine gute Möglichkeit...mit der Zuweisung der entsprechenden Pfade komme ich auch zurecht.

FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\"

Ich weiß aber nicht, wie ich mit dem ersten Schritt "FileSystemObject" umgehen muss,
kann mir das jemand erklären?
Ziel ist ein einfaches kopieren von Dateien...

Vielen Dank!
Harry

Beaker s.a.

Hallo Harry,
So ganz verstehe ich die Frage nicht, - du verwendest doch das FSO.
Ich verwende für "externe" Objekte aber lieber Late-Binding, und halte
das Objekt in einer Membervariablen und einer Factory-Funktion vor, -
in einem allgem. Modul
Private m_FileSystemObject As Object
Public Function GetFSO() As Object
    If m_FileSystemObject Is Nothing Then
        Set m_FileSystemObject = CreateObject("Scripting.FilesystemObject")
    End If
    Set GetFSO = m_FileSystemObject
End Function
Verwendung
GetFSO.CopyFile ..., ...
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Umbauwfb

Danke erstmal für die Antwort...

Mir fehlt dazu einfach noch der gesamte Hintergrund...wenn ich das dann einmal gesehen habe, weiß ich in Zukunft Bescheid...
Vermutlich fehlt da ein Dimensionieren und ein set...oder was auch immer...

Der jetzige Code sieht wie nachfolgend aus. Was muss ich dazu ergänzen, um
nicht die anhängende Fehlermeldung zu erhalten...?

'Kopieren der Dateien von USB-Stick in Ordner Teilnehmer

Dim strPfadTN_USB As String
Dim strPfadTN_DB As String

strPfadTN_USB = Forms!Formular1.cbxLaufwerkSelect.Column(2) & ":" & "\" & "TN"
strPfadTN_DB = DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 1") & Forms!Formular1.cbxTeilnehmerSelect.Column(2)

'Prüfung ob Ordner in DB vorhanden sind
  If Dir(strPfadTN_DB, vbDirectory) = "" Then
      MsgBox "Bitte zuerst Teilnehmer-Ordner anlegen"
      Exit Sub
  End If
 
 
'Prüfung ob Ordner auf USB-Stick vorhanden sind
'  If Dir(strPfadTN_USB, vbDirectory) = "" Then
'      MsgBox "Ordner auf USB-Stick nicht vorhanden"
'      Exit Sub
'  End If


FileSystemObject.CopyFile "strPfadTN_USB\LebenslaufZeugnisse\*.*", "strPfadTN_DB\LebenslaufZeugnisse\", True
 

Umbauwfb

Ich habe es jetzt verstanden  :)

Der Code läuft!
Vielen Dank
Harry

'Kopieren der Dateien von USB-Stick in Ordner Teilnehmer

Dim strPfadTN_USB As String
Dim strPfadTN_DB As String

strPfadTN_USB = Forms!Formular1.cbxLaufwerkSelect.Column(1) & ":" & "\" & "TN"
strPfadTN_DB = DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 1") & Forms!Formular1.cbxTeilnehmerSelect.Column(2)

        'Prüfung ob Ordner in DB vorhanden sind
        '  If Dir(strPfadTN_DB, vbDirectory) = "" Then
        '      MsgBox "Bitte zuerst Teilnehmer-Ordner anlegen"
        '      Exit Sub
        '  End If
         
         
        'Prüfung ob Ordner auf USB-Stick vorhanden sind
        '  If Dir(strPfadTN_USB, vbDirectory) = "" Then
        '      MsgBox "Ordner auf USB-Stick nicht vorhanden"
        '      Exit Sub
        '  End If

'        MsgBox strPfadTN_USB & vbCrLf & strPfadTN_DB
'        Pfadangaben der MsgBox sind korrekt...


GetFSO.CopyFile strPfadTN_USB & "\LebenslaufZeugnisse\*.*", strPfadTN_DB & "\LebenslaufZeugnisse", True
GetFSO.CopyFile strPfadTN_USB & "\Anschreiben\*.*", strPfadTN_DB & "\Anschreiben", True
GetFSO.CopyFile strPfadTN_USB & "\ExcelBewerbungen\*.*", strPfadTN_DB & "\ExcelBewerbungen", True

        'MsgBox "Dateien wurden kopiert"