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-Key: 235572

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

Printed on: May 4, 2024 at 00:05 o'clock

Member: Alex-123
Solution Alex-123 Apr 15, 2014 updated at 10:06:30 (UTC)
Goto Top
Hallo Anna2701 face-smile

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

Dateien verschieben mit VBScript

Gruß Alex
Member: Anna2701
Anna2701 Apr 15, 2014 at 07:05:14 (UTC)
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
Member: Anna2701
Anna2701 Apr 15, 2014 at 07:30:10 (UTC)
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
Member: Alex-123
Alex-123 Apr 15, 2014 at 07:31:44 (UTC)
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 ?
Member: Alex-123
Solution Alex-123 Apr 15, 2014 updated at 10:06:36 (UTC)
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.
Member: Anna2701
Anna2701 Apr 15, 2014 at 07:41:35 (UTC)
Goto Top
Ja, würde gerne einen Ordner erzeugen, wenn noch keine besteht
Member: bastla
bastla Apr 15, 2014 at 07:45:32 (UTC)
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
Member: Anna2701
Anna2701 Apr 15, 2014 at 07:48:38 (UTC)
Goto Top
Funktioniert nicht face-sad
Member: Alex-123
Solution Alex-123 Apr 15, 2014 updated at 10:06:43 (UTC)
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
Member: bastla
bastla Apr 15, 2014 updated at 08:00:44 (UTC)
Goto Top
@ Alex-123
Ganz Vorsichtige würden vielleicht noch zusätzlich vorweg mit FileExists() prüfen ...

Grüße
bastla
Member: Alex-123
Alex-123 Apr 15, 2014 at 08:02:34 (UTC)
Goto Top
@ bastla

MoinMoin

aber nur die ganz vorsichtigen ;)

Grüße
Member: Anna2701
Anna2701 Apr 15, 2014 at 08:08:22 (UTC)
Goto Top
Jetzt legt er den Ordner an, aber verschiebt die Datei nicht mehr face-sad
Member: Anna2701
Anna2701 Apr 15, 2014 at 08:17:20 (UTC)
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
Member: Anna2701
Anna2701 Apr 15, 2014 at 09:32:16 (UTC)
Goto Top
Keiner da, der mir helfen kann? face-sad
Mitglied: 115420
Solution 115420 Apr 15, 2014 updated at 10:06:10 (UTC)
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