Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Bilddateien raussuchen & relative Pfadangabe





Frage

Hallo, ich habe eine Datenbank für meine VCD's gemacht. Und habe im Formular auch ein Bild pro CD, diese wird dargestellt indem in der Tabelle ein Pfad angegeben wird, und dieser dargestellt wird. Ich möchte jedoch nicht immer den Pfad einzeln eingeben, sondern mit einer art Durchsuchen die richtige Datei aussuchen und er setzt den Pfad dann selber ein. Und dann würde es mich freuen, wenn mir einer sagen könnte, wie ich diese Pfadangaben relativ zur position der .mdb angeben kann. Also momentan steht da immer der komplette Pfad drin. Quasi so-> E:\Sammlung\Bilder\TV-Serie\Testbild.jpg und die Datenbank liegt in E:\Sammlung Wenn ich nun den Sammlungs ordner nach D:\verschiebe, funktionieren logischerweise die Bild Verknüpfungen auch nicht mehr. Wie kann ich den dies lösen? ALso diese beiden sachen. Danke fleißiger Helfer.....

Antwort 1 von TheBlackBird_

Hi!!

Zum Punkt relative Pfadangabe:

Versuche einmal folgendes (basierend auf Deinem Beispielpfad):

.\Bilder\TV-Serie\Testbild.jpg

Dabei bedeutet der Punkt vorm ersten BackSlash, dass der Pfad vom derzeit aktuellen Verzeichnis aus weiterverlaeuft.
Zumindest in meinen Batches funktioniert dies wirklich prima.

Wie Du die Pfade allerdings "aufsammeln" kannst, da hab ich leider derzeit keine Idee.

Cu TheBlackBird ®

Antwort 2 von Schupo

Hmm ne so alleine funktioniert das nicht, dann muss man vielleicht noch in den CODE reinschreiben das der von dem Standort der .mdb ausgehen soll. Aber da wüsste ich garnicht wie das geht.

Also wenn noch einer nen Tip zu dem "aufsammeln" hat dann wäre das super.


Danke

Antwort 3 von .struppi

Hallo,
Um den Pfad einer Datei in ein Textfeld einzutragen, könnte man eine der folgende Filedialog-Funktionen benutzen:

1.

Public Function AskFile(dir As String, titel As String, Filter As String, index As Long, Flags As Integer) As String
    Dim dialog As Object
    
    Set dialog = CreateObject("MSComDlg.CommonDialog")
    If Filter = "" Then
        Filter = "Alle Dateien|*.*"
    End If
    dialog.Filter = Filter
    dialog.FilterIndex = index
    dialog.Flags = Flags
    dialog.MaxFileSize = 260
    dialog.CancelError = False
    dialog.DialogTitle = titel
    dialog.InitDir = dir
    dialog.ShowOpen
    AskFile = dialog.FileName
    Flags = dialog.Flags
End Function


2.

Public Function AskFile2(dir As String, titel As String, index As Long, Flags As Integer) As String

Dim wshell, folder, Parent As Object
Dim dateien, daten As Variant
Dim Verzeichnis As String
Set wshell = CreateObject("Shell.Application")
Set folder = wshell.browseForFolder(index, titel, Flags, dir)

Set Parent = folder.ParentFolder
If TypeName(Parent) = "Nothing" Then
MsgBox "Das war wohl nischt!"
Exit Function
End If
Set dateien = Parent.Items
For Each daten In dateien
If daten.Name = folder.Title Then
AskFile2 = daten.Path
End If
Next

End Function


Die Funktionen in ein Modul einfügen.
Der Aufruf erfolgt dann mtw. über ein Button im Formular.
In die Klick-Ereignis Sub folgenden Code eingeben:

On Error Resume Next
Dim Flags As Integer, dateiname, meldung, Pfad As String
Flags = 0
Pfad ="C:/"
'Pfad = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(dir(CurrentDb.Name))) 'um im DB ordner zu suchen 
dateiname = AskFile(Pfad, "Datei aussuchen!", "Bild Dateien|*.bmp;*.jpg;*.gif", 1, Flags)
   If Err.Number <> 0 Then
      Err.Clear
        dateiname = AskFile2(Pfad, "Datei aussuchen", 0, 16384)
          If Err.Number <> 0 Then
            meldung = MsgBox("Fehler bei Erzeugung des Dialogfensters oder der Dateiauswahl" & vbCrLf _
            & "Bild konnte nicht eingefügt werden", vbCritical, "DATEIAUSWAHL NICHT MÖGLICH")
            Err.Clear: Exit Sub
          End If
      End If
 
 Me.text1 = dateiname


text1 ist der Name des Textfeldes in das der Pfad zur Datei eingetragen werden soll.

Mit dem Relativen Pfad scheint es nur zu klappen wenn die Bilder im selben Ordner gespeichert werden in der die aufrufende Datenbank liegt. Sollten die Bilder verstreut auf dem Rechner vorliegen ist der absolute Pfad sinnvoller. Ansonsten müssen sie halt in den Datenbankordner verschoben werden. Das könnte in A2000/2002 auch anders sein. Hab es in A97 getestet. Vielleicht gibt es aber auch noch eine andere Möglichkeit, die mir nicht bekannt ist....
gruß struppi

Antwort 4 von Schupo

Hmm ja schon klar.

Also ich bin beeindruckt, das wird aber ein Paar stunden dauern, bis ich das habe, bzw. verstanden habe was es genau macht. Danke ich melde mich wieder ;))

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: