Drag and drop von dateien in access

hallo liebe leute,
wie aus dem titel schon zu ersehen ist, suche ich nach einer möglichkeit, dateien (erstmal nur) aus dem explorer auf ein bestimmtes feld in einem access-formular ziehen zu können und dadurch den datei-pfad dieser datei zu bekommen. habe schon viel gegoogelt und auch etwas gefunden, womit ich aber leider nicht wirklich was anfangen kann. also ich will wirklich nur den datei-pfad und -namen haben, um damit weiter arbeiten zu können (z.b. eine kopie zu speichern). später soll das dann auch mit anhängen aus outlook möglich sein. deswegen wäre eine möglichst flexible lösung ideal. plattform ist access 2010 und der weg ist egal - hauptsache es funktioniert irgendwie. danke schonmal für eure mühe und hilfe.
gruß

Hallo,

drag&drop (d. h. Kopieren des Dateiobjektes(!) und Einfügen in ein Textfeld) geht so natürlich nicht…

Es geht mit Copy&amp:stuck_out_tongue_winking_eye:aste, wenn im Explorer der Dateiname markiert (zweimal anklicken) wird , dieser dann (in die Zwischenablage) kopiert und in das Textfeld eingefügt wird.

Der „normale“ Weg wäre das Öffnen eines FileDialog-Fensters, Auswahl der gewünschten Datei (eigentlich auch des „Dateinamens“ und Übernahme mit dem „Öffnen“-Button.

Gruß
Franz

danke für die schnelle antwort. über die von dir vorgeschlagenen wege läuft es bisher. die sind aber auf dauer umständlich. daher die idee mit drag&drop. man soll beliebige dateien oder mail-anhänge aus outlook auf ein bestimmtes feld im access-formular ziehen können. über dieses feld möchte ich dann per vba den genauen pfad- und dateinamen der datei erhalten, damit ich eine kopie in einem bestimmten ordner speichern kann. konkret geht es um eine datenbank, mit der bauvorhaben verwaltet werden. zu jedem bauvorhaben gibt es viele einzelne dateien (z. b. zeichnungen von architekten, rechnungen subunternehmer, verträge usw.). die verwaltung dieser dateien soll nun vereinfacht werden.
gruß
cozuhazu

Hallo,

das wird so nicht zum Ziel führen…

Wie schon gesagt, kopiert der Windows-Explorer ein angeklicktes OBJEKT (mit allen seinen Eigenschaften, z. B. Inhalt, Format, Größe, Name, etc in die Zwischenablage. Ein Formular-Textfeld kann diese Metadaten nicht interpretieren und ignoriert (lehnt ab) demzufolge den ganzen Einfügevorgang. Ein Kopieren eines Mail-Anhanges ist nochmal um einiges komplexer…

Allenfalls mit viel API-Programmierung (und -Durchblick) könnte die Zwischenablage so manipuliert werden, dass lediglich der (Datei-) Name des kopierten Objektes ausgelesen und als Text für die Zuweisung an ein Textfeld geliefert wird.

Selbst Anlagen-Felder, die OLE-Objekte (verschiedene Dateiformate) aufnehmen können (und die eine Eigenschaft „Filename“ enthalten), reagieren nicht auf drag&drop von Dateien aus dem Windows-Explorer, sondern müssen über einen separaten Filedialog ausgewählt und eingefügt werden.

Ein Lösungsweg, der mir spontan dazu einfällt, könnte sein, dass mit dem Windows-Explorer ein dafür angelegtes Verzeichnis mit den gerade interessierenden Dateien mittels Drag&Drop „bestückt“ , anschliessend dieses Verzeichnis mit VBA (DIR-Funktion) gescannt wird und dadurch die Namen der vorher kopierten Dateien erfasst und einem Tabellenfeld oder sonstiger Variablen zugewiesen werden.

Gruß
Franz, DF6GL

hallo franz,
das mit api-s und/oder anderen verweisen wäre kein problem. wie schon geschrieben - hauptsache, es funktioniert. hier
http://www.ms-office-forum.net/forum/showthread.php?..
gab es wohl schonmal einen lösungsansatz, aber es schreibt natürlich wieder keiner, wie das genau zu machen ist …
gruß
cozuhazu

Hallo,

dort steht ja auch keine direkte Lösung für Drag&Drop, sondern zum Einen die auch von mir vorher schon erwähnte Lösung mit dem Ablegen der betreffenden Dateien in ein Temp-Verzeichnis, das anschließend gescannt und die Datei-Namen per VBA eingelesen werden,

zum Anderen die Emulation des Windows-Explorers mit dem Web-Browser-Control in einem Access-Formular, über das man dann die markierten Dateinamen auslesen könnte…(dies habe ich selber so noch nicht getestet)

Wenn API kein Problem für Dich darstellt, dann sollten beide Lösungswege erst recht keine sein…

Gruß
Franz,DF6GL