Hallo liebe Community,
seit Tagen raufe ich mir die Haare und komme nicht weiter. Ich finde meinen Fehler nicht. Folgende Situation:
Es soll eine Datei in einem festgelegten Verzeichnis gefunden und umbenannt werden. Doch ich bekomme ständig die Fehlermeldung, dass die Datei nicht vorhanden ist, was real falsch ist.
Zur Erklärung: Das Verzeichnis kann unter Umständen der 3. oder 4. Unterordner sein.
Der alte und neue Dateiname setzt sich aus mehreren Komponenten zusammen (z. B. 2019-01-11-[Belegnummer]-[Belegname].[Dateiendung])
Dim strBLName_Alt As String
Dim strBLName_Neu As String
Dim strBLDateiname_Alt As String
Dim strBLDateiname_Neu As String
Dim strVerzeichnisPfad As String
Dim strChange_Alt As String
Dim strChange_New As String
strBLName_Alt = Me!BLName
strVerzeichnisPfad = Forms!frm_Register!Verzeichnis & "\"
strBLName_Alt = Me!BLName
strBLDateiname_Alt = Me!BLDateiname
strBLName_Neu = InputBox("Bitte geben Sie den neuen Belegnamen ein:")
strBLDateiname_Neu = Year(Me!BLDatum) & "-" & Format(Month(Me!BLDatum), "00") & "-" & Format(Day(Me!BLDatum), "00") & "-" & Me!BLNR & "-" & strBLName_Neu & Me!DTID
strChange_Alt = strVerzeichnisPfad & strBLDateiname_Alt
strChange_New = strVerzeichnisPfad & strBLDateiname_Neu
If StrPtr(strBLDateiname_Neu) = 0 Then
MsgBox "Es wurde 'Abbrechen' angeklickt'"
ElseIf strBLDateiname_Neu = vbNullString Then
MsgBox "Es wurde nichts eingegeben"
Else
Name strChange_Alt As strChange_New
Me!BLName = strBLNameNeu
End If
Hoffe, Ihr könnt mir in meiner "Blindheit" helfen, den Fehler zu finden... ;)
Zitat von: RFC am Januar 12, 2019, 09:52:17
strBLName_Neu = InputBox("Bitte geben Sie den neuen Belegnamen ein:")
strBLDateiname_Neu = Year(Me!BLDatum) & "-" & Format(Month(Me!BLDatum), "00") & "-" & Format(Day(Me!BLDatum), "00") & "-" & Me!BLNR & "-" & strBLName_Neu & Me!DTID
strChange_Alt = strVerzeichnisPfad & strBLDateiname_Alt
strChange_New = strVerzeichnisPfad & strBLDateiname_Neu
If StrPtr(strBLDateiname_Neu) = 0 Then
1. In deinem Code gibt es keine Prüfung auf ein Verzeichnis.
2. Die Prüfung von strBLDateiname_Neu bringt nichts, da du davor ja im Code einen Text zuweist.
Wenn dann musst du doch strBLName_Neu überprüfen. ;)
Vielen Dank für die schnelle Antwort. Stehe im Moment jedoch auf dem Schlauch.
zu 1. StrPtr zeigt mir bei der Prüfung des Verzeichnisses, dass dies existiert.
zu 2. Es ist doch eigentlich egal, ob ich strBLName_Neu oder strBLDateiname_Neu prüfe, denn in beiden wird ja vorher Text eingegeben.
Wenn Du mir mit einem Codebeispiel helfen könntest wäre super - sehe vor lauter Wald die Bäume nicht mehr.. ;D :D
Zitat von: RFC am Januar 12, 2019, 13:21:21
Vielen Dank für die schnelle Antwort. Stehe im Moment jedoch auf dem Schlauch.
zu 1. StrPtr zeigt mir bei der Prüfung des Verzeichnisses, dass dies existiert.
Du weißt scheinbar nicht was StrPtr macht - google den Begriff mal.
Für das Arbeiten mit dem Filesystem gibt es in VBA eine ganze Reihe von Funktionen.
Schau in der Hilfe mal unter dem Begriff Dir, oder im Objektkatalog in der Klasse VBA unter Filesystem nach. ;)