Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Umbauwfb am Februar 17, 2022, 10:49:32

Titel: FileSystemObject
Beitrag von: Umbauwfb am Februar 17, 2022, 10:49:32
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
Titel: Re: FileSystemObject
Beitrag von: Beaker s.a. am Februar 17, 2022, 12:17:27
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 ..., ...
Titel: Re: FileSystemObject
Beitrag von: Umbauwfb am Februar 17, 2022, 12:37:56
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
 
Titel: Re: FileSystemObject
Beitrag von: Umbauwfb am Februar 17, 2022, 15:53:13
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"