Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: thron am Dezember 19, 2016, 19:18:18

Titel: Relativer Pfad erstellen
Beitrag von: thron am Dezember 19, 2016, 19:18:18
Hallo,

ich habe ein Problem und komme einfach nicht weiter. Ich habe mir eine Beispieldatenbank zum verwalten von Dokumenten heruntergeladen und angepasst. Das hat auch alles soweit funktioniert bist auf das die Dokumente in meinem Fall Bedienungsanleitungen im absoluten Pfad gespeichert werden. Obwohl die in einem Unterverzeichnich der DB liegen. Ich hätte es lieber als relativer Pfad, so könnte ich die DB auch weitergeben und jeder könnte sie nutzen. Habe mal die Syntax zum erstellen des absoluten Pfad reinkönnest. Kann mir jemand bitte helfen, mache so jetzt schon seid drei Tagen rum.

Vielen Dank im Voraus schon mal....

Dim db As Database
Dim rs As Recordset
Dim DocPfad As String
Dim a As Variant

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("Dokumente", dbOpenDynaset)
   
        a = DateiOeffnen("C:\", "Bitte Dokument auswählen:", "ALLE")
        If IsNull(a) Or a = "" Then
        Else
            DocPfad = a
            rs.AddNew
                rs!DocPfad = DocPfad
                rs!KndNr = Me.Kfz_ID
            rs.Update
        End If
        Me.UForm.Requery
       
    rs.Close
    db.Close
   
ende:
    Exit Sub
   
fehler:
    MsgBox Err.Description, 16
    Resume ende

End Sub
Titel: Re: Relativer Pfad erstellen
Beitrag von: DF6GL am Dezember 19, 2016, 22:25:27
Hallo,

der Code wählt doch nur einen (kompletten) Dateinamen ausgehend von Root-Verzeichnis auf Laufwerk C:  aus und speichert diesen ab...

Vermutlich willst Du aber nur den reinen Dateinamen mit Extension speichern und als  Verzeichnis ein Unterverzeichnis des Ordners benutzen, in dem die DB-(FE-)Datei abgelegt ist.

Insofern zerlege den PfadDateinamen in den reinen Dateinamen und nutze zur Ermittlung/Festlegung des Dateipfades "Currentproject.Path" für den Pfad für das DB-Verzeichnis. Den Namen des Unterverzeichnisses kannst Du als Konstante festlegen.


z. B.:

.
.
.
'  Dateinamen speichern
DocPfad = Mid (DocPfad, InStrRev(DocPfad,"\")+1)
.
.
' kompletten Dateinamen zusammensetzen bei Bedarf.
strFullFileName = Currentproject.Path & "\Dokumente\" & DocPfad
.
.
.
Das Anfangsverzeichnis für den Filedialog kann sinnvollerweise auf den DB-Pfad (Currentproject.Path) gesetzt werden.

Natürlich muss beim Kopieren der Db das Unterverzeichnis mit den Dokumenten ebenfalls kopiert werden.





Titel: Re: Relativer Pfad erstellen
Beitrag von: thron am Dezember 19, 2016, 22:41:23
Ja genau das will ich machen...jetzt mal sehen ob ich das hinbekomme. Werde es probieren und gebe Rückmeldung ob es geklappt hat...

Danke schon mal im Voraus