Datei in Unterordner finden und kopieren (Access)

SamGerman, Freitag, 08.02.2019, 14:24 (vor 10 Tagen)
bearbeitet von Martin Asal, Sonntag, 10.02.2019, 14:18

Hallo liebes Forum,

ich benötige dringend Hilfe. Seit einer Woche versuche ich mich berufsbedingt erstmal mit VBA. Der Erfolg ist angesichts der kurzen Zeit ok, aber ich habe ein Problem, an dem ich seit 2 Tagen scheitere. (Nochmals: bitte erklärt mir Sachen wie einem Kleinkind, ich habe echt so gut wie keine Ahnung.)

Folgendes Thema: Ich habe in meinem kleinen Programm 2 Textfelder, die ich mit FolderBrowseDialog ausfülle.

Erstes Feld beispielsweise mit "C:\test\OrdnerXY", zweites mit "D:\Stammdaten\OrdnerXYz".
Aus diesen Pfaden starte ich diverse Operationen, welche gut funktionieren (it´s magic, at least 4 me).
Hierbei wird jetzt in einem Unterordner von "C:\test\OrdnerXY" eine Datei erstellt (an dem Ablageort kann ich leider nichts ändern.)

Diese Datei möchte ich nun in "D:\Stammdaten\Ordner0815" kopieren, und zwar in einen Unterordner der ggf. noch nicht existent ist (das klappt bereits).

Ich bekomme es nicht hin... anbei der Code mit dem ich es mehr als Laienhaft versuche.

Ich wäre so undenkbar seelig wenn mir einer helfen könnte.
MFG Thomas Gärtner

    Private Sub Button1_Click_2(sender As System.Object, e As System.EventArgs)
 
        Dim FSO As Object
        Dim ToPath As String
        Dim FromPath As String
        Dim DatNam As String
 
 
        FromPath = txt1.Text & "\"                            '<< Pfad aus dem Kopiert werden soll (aus Textfeld, gespeist aus FolderBrowserDialog )
        ToPath = txt2.Text & "\"                              '<< Pfad in den Kopiert werden soll (aus Textfeld, gespeist aus FolderBrowserDialog )
        DatNam = Dir(FromPath & "*Kunden*.step")              '<< Plan: Sucht in Ordner & Unterordner aus FromPath=txt1.Text alle Dateien mit Typ *.step und mit "Kunden" beginnend

        FSO = CreateObject("scripting.filesystemobject")                   '<< Suche im Pfad nach Ordner. Wenn keiner da ist, dann erstellen.
        If Not FSO.FolderExists(ToPath & "\3D_Oberflächendaten\") Then
            FSO.CreateFolder(ToPath & "\3D_Oberflächendaten\")
        End If
 
        FileCopy(DatNam, ToPath)                        '<< Hier hört es bei mir schon auf...

    End Sub

Datei in Unterordner finden und kopieren

Martin Asal @, Sonntag, 10.02.2019, 14:33 (vor 8 Tagen) @ SamGerman

Hallo Thomas,

ich habe mir deinen Code jetzt nicht in jedem Detail angeschaut, aber auf den ersten Blick schaut er doch ganz gut aus...

... außer einer winzigen Kleinigkeit:

FileCopy(DatNam, ToPath)

Wie im VBA-Tutorial erklärt wird, müssen die Argumente einer Funktion in Klammern gesetzt werden, wenn es einen Rückgabewert gibt. Aber wenn es keinen Rückgabewert gibt, darf es auch keine Klammern geben. Demzufolge muss es heißen:

FileCopy DatNam, ToPath

Das mit den Klammern zeigt sich vielleicht ganz gut an folgendem Beispiel:

MsgBox "Hallo"
Debug.Print MsgBox("Hallo")
 

Martin

RSS-Feed dieser Diskussion
powered by my little forum