Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: RFC am Januar 12, 2019, 09:52:17

Titel: Externe Dateien suchen und umbenennen
Beitrag von: RFC am Januar 12, 2019, 09:52:17
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... ;)
Titel: Re: Externe Dateien suchen und umbenennen
Beitrag von: markusxy am Januar 12, 2019, 12:45:29
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.  ;)
Titel: Re: Externe Dateien suchen und umbenennen
Beitrag 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.
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
Titel: Re: Externe Dateien suchen und umbenennen
Beitrag von: markusxy am Januar 12, 2019, 13:47:43
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.  ;)