anna2701
Goto Top

Datei hinter Hyperlink in anderen existierenden Ordner verschieben

Halloo zusammen face-smile
ich würde gerne die Datei hinter meinem Hyperlink der in Orderner "Test-PDF" liegt, in den darin existierenden Ordner "Geloescht" verschieben, könnt ihr mir eventuell helfen? Kann ich da mit FSO.MoveFile vorgehen?

Content-ID: 235572

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

Ausgedruckt am: 25.11.2024 um 22:11 Uhr

Alex-123
Lösung Alex-123 15.04.2014 aktualisiert um 12:06:30 Uhr
Goto Top
Hallo Anna2701 face-smile

schau dir mal diesen Beitrag an, der sollte dir helfen !

Dateien verschieben mit VBScript

Gruß Alex
Anna2701
Anna2701 15.04.2014 um 09:05:14 Uhr
Goto Top
Sorry, ich habe eigentlich überhaupt keine ahnung...
Könnte jetzt einfach den Code kopieren, dann wäre alles gut, aber ich verstehe nicht was da passiert und das würde ich gerne :s
Anna2701
Anna2701 15.04.2014 um 09:30:10 Uhr
Goto Top
Habe es doch selber hinbekommen face-smile
Jetzt eine neue Frage:

Wie kann ich prüfen, ob der Zielordner existiert und wenn nicht einen Ordner anlegen?


Set FSO = CreateObject("Scripting.FileSystemObject")
Filepath = TxtHyperlinkDokument.Hyperlink.Address

'Filepath neu erzeugen, d.h. Funktion suchen die aus Filepath nur den Ordner sucht

'1
Filepath_Neu = "\\stahl01.com\dfs08\VSP\Vertriebsservice\Aussenwirtschaft_Exportkontrolle\Trade-Relations\Abteilungsinterna\Ausbildung und Praktikum\TKSE Ausbildung\2014\Annabell Smits\Mini-Anwendung Löschung von Erklärungen\Test-PDF\"

'2 Prüfung: gibt es einen Unterordner Geloescht in Filepath_Neu?

'3 Unterordner erzeugen An Filepath_Neu Unterordner Geloescht dranhängen, wenn notwendig
Alex-123
Alex-123 15.04.2014 um 09:31:44 Uhr
Goto Top
FSO.MoveFile Quellpfad & "\*.*", Zielpfad & "\"  

Die FSO.MovieFile Funktion ist eigentlich selbsterklärend oder ?

Du benötigst einen Quellpfad (Test-PDF) und einen Zielpfad (Geloescht).

Danach musst du noch einschränken welche Dateien verschoben werden sollen.

Das kannst du hier
& "\*.*"  
festlegen. Das erste * steht für den Namen der Datei und das zweite * für das Dateiformat.

Möchtest du sonst noch was wissen ?
Alex-123
Lösung Alex-123 15.04.2014 aktualisiert um 12:06:36 Uhr
Goto Top
Dim objFSO, newDIR
 
ziel="Filepath_Neu\Geloescht"  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")    
 
if objFSO.Folderexists(ziel) = false then
 
Set newDIR = objFSO.CreateFolder(ziel)
 
end if

So müsste der Teil dann aussehen. Das Geloescht hinter ziel="Filepath_Neu\ brauchst du um den Ordner zu überprüfen bzw. erstellen.
Anna2701
Anna2701 15.04.2014 um 09:41:35 Uhr
Goto Top
Ja, würde gerne einen Ordner erzeugen, wenn noch keine besteht
bastla
bastla 15.04.2014 um 09:45:32 Uhr
Goto Top
Hallo Anna2701!

Noch zu
Funktion suchen die aus Filepath nur den Ordner sucht
Sieh Dir mal die Funktionen GetFileName() bzw für eine ev Zerlegung GetBaseName() und GetExtensionName() an ...

Grüße
bastla
Anna2701
Anna2701 15.04.2014 um 09:48:38 Uhr
Goto Top
Funktioniert nicht face-sad
Alex-123
Lösung Alex-123 15.04.2014 aktualisiert um 12:06:43 Uhr
Goto Top
So solltest du keine Probleme haben. War mir nicht sicher ob das Geloescht (Filepath_Neu\Geloescht) auf diese Weise übergeben wird.

Dim objFSO, newDIR
 
ziel="\\stahl01.com\dfs08\VSP\Vertriebsservice\Aussenwirtschaft_Exportkontrolle\Trade-Relations\Abteilungsinterna\Ausbildung und Praktikum\TKSE Ausbildung\2014\Annabell Smits\Mini-Anwendung Löschung von Erklärungen\Test-PDF\Geloescht"  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")    
 
if objFSO.Folderexists(ziel) = false then
 
Set newDIR = objFSO.CreateFolder(ziel)
 
end if
bastla
bastla 15.04.2014 aktualisiert um 10:00:44 Uhr
Goto Top
@ Alex-123
Ganz Vorsichtige würden vielleicht noch zusätzlich vorweg mit FileExists() prüfen ...

Grüße
bastla
Alex-123
Alex-123 15.04.2014 um 10:02:34 Uhr
Goto Top
@ bastla

MoinMoin

aber nur die ganz vorsichtigen ;)

Grüße
Anna2701
Anna2701 15.04.2014 um 10:08:22 Uhr
Goto Top
Jetzt legt er den Ordner an, aber verschiebt die Datei nicht mehr face-sad
Anna2701
Anna2701 15.04.2014 um 10:17:20 Uhr
Goto Top
Private Sub CmdDokumentlöschen_Click()

Dim FSO As Object
Dim Filepath As String
Dim Filepath_Neu As String
Dim SQL_Befehl As String
Dim Eingabewert As Byte
Dim Ziel As String

Eingabewert = MsgBox("Sind Sie sicher, dass Sie die Datei und den Datensatz löschen wollen?", vbYesNo, "Löschen")

If Eingabewert = vbYes Then

On Error Resume Next

Set FSO = CreateObject("Scripting.FileSystemObject")
Filepath = TxtHyperlinkDokument.Hyperlink.Address
Filepath_Neu = "\\stahl01.com\dfs08\VSP\Vertriebsservice\Aussenwirtschaft_Exportkontrolle\Trade-Relations\Abteilungsinterna\Ausbildung und Praktikum\TKSE Ausbildung\2014\Annabell Smits\Mini-Anwendung Löschung von Erklärungen\Test-PDF\"
Dim newDIR

Ziel = "\\stahl01.com\dfs08\VSP\Vertriebsservice\Aussenwirtschaft_Exportkontrolle\Trade-Relations\Abteilungsinterna\Ausbildung und Praktikum\TKSE Ausbildung\2014\Annabell Smits\Mini-Anwendung Löschung von Erklärungen\Test-PDF\Geloescht\"

If FSO.Folderexists(Ziel) = False Then

Set newDIR = FSO.CreateFolder(Ziel)

End If
DoCmd.Requery
FSO.MoveFile Filepath_Neu, Ziel
DoCmd.Requery

If Err Then
LblMeldung.Caption = "Der Datensatz enthält keine Datei. Der Datensatz wurde trotzdem gelöscht."
DoCmd.Requery
Else
If Not FSO.FileExists(Filepath_Neu) Then
LblMeldung.Caption = "Datei wurde erfolgreich gelöscht"
DoCmd.Requery
Else
LblMeldung.Caption = "Datei wurde nicht gelöscht"
End If
End If
End If

DoCmd.SetWarnings False
'DS verschieben
SQL_Befehl = "INSERT INTO T_Erklaerungen_geloescht SELECT * FROM T_Erklaerungen where ID = " & ID.Value
DoCmd.RunSQL SQL_Befehl
DoCmd.Requery
'DS löschen
SQL_Befehl = "DELETE FROM T_Erklaerungen WHERE ID = " & ID.Value
DoCmd.RunSQL SQL_Befehl
DoCmd.Requery
DoCmd.SetWarnings True


Set FSO = Nothing
End Sub
Anna2701
Anna2701 15.04.2014 um 11:32:16 Uhr
Goto Top
Keiner da, der mir helfen kann? face-sad
115420
Lösung 115420 15.04.2014 aktualisiert um 12:06:10 Uhr
Goto Top
Hallo Anna2701!

Wenn ich das richtig verstanden habe, dann willst Du doch die Datei verschieben, die in Hyperlink.Address angegeben ist?

Wenn ja, dann in etwa so:
    
    Dim oFso As Object, sNewFolder As String, sOldFile as String, sNewFile As String

    On Error Resume Next
    
    Set oFso = CreateObject("Scripting.FileSystemObject")  

    sOldFile = TxtHyperlinkDokument.Hyperlink.Address
    
    'Test ob Datei existiert, ansonsten abbrechen  
    If Not oFso.FileExists(sOldFile) Then
        MsgBox "Datei existiert nicht!"  
       'Hyperlink löschen...  
        Exit Sub
    End If
        
    'Ordnerpfad von Hyperlink.Address  
    sNewFolder = oFso.BuildPath(oFso.GetParentFolderName(sOldFile), "Gelöscht")  
    
    'Dateipfad mit Unterordner "Gelöscht"  
    sNewFile = oFso.BuildPath(sNewFolder, oFso.GetFileName(sOldFile))
    
    'Ordner erstellen, falls nicht vorhanden  
    If Not oFso.FolderExists(sNewFolder) Then
        oFso.CreateFolder sNewFolder
    End If
    
    'Datei verschieben  
    oFso.MoveFile sOldFile, sNewFile
    
    If Err.Number Then
        '...  
    Else
        '...  
    End If

Grüße
spatzenhirn