Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Xoar am November 25, 2016, 22:15:57

Titel: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: Xoar am November 25, 2016, 22:15:57
Hallo,

hab jetzt ca. eine Std im Internet gelesen, bin aber nur zum Teil schlauer.

Folgendes Ziel:
Ein Ufrm in Endlosansicht, oder Listenfeld wo ich Anlagen hinterlegen kann (*.doc, *.pdf...) diese sollen mit dem Programmsymbol (*.doc das Wordprogramm Icon) und Namen angezeigt werden, aber nicht in der Datenbank gespeichert werden, sondern auf einem externen Serverlaufwerk. Zum bearbeiten mit klick öffenbar sein.

So wie ich das verstanden habe, macht ein Anlagefeld das, aber speichert die Daten innerhalb der DB (also 2 GB Grenze)

Muss man den Link zum Dokument in ein Textfeld speichern und das Dokument dann über den Pfad öffnen. Muss ich dann für jede Dateivariante nen eigenes Icon in die Db einbinden und mit select case das passende Icon anzeigen lassen?

Oder noch anders?

Grüße
Titel: Re: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: ebs17 am November 27, 2016, 16:31:04
ZitatOder noch anders?
Wäre es für Dich vorstellbar, die relevanten Dateien in einem gesonderten Verzeichnis im Dateisystem abzulegen?

Dann könnte man schlicht gezielt das Explorerfenster öffnen und hätte die ganze Pracht mit den gewohnten Symbolen im Überblick.
Application.FollowHyperlink "X:\irgendwo\genaudieserpfad"
Titel: Re: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: MaggieMay am November 27, 2016, 18:39:25
Hallo,
Zitat von: Xoar am November 25, 2016, 22:15:57Muss ich dann für jede Dateivariante nen eigenes Icon in die Db einbinden und mit select case das passende Icon anzeigen lassen?
mAn kann das in einem Endlosformular nur funktionieren, wenn du auch das Icon (bzw. den Pfad zum Bild) zur jeweiligen Datei im Datensatz abspeicherst. Bei einem Listenfeld geht das vermutlich gar nicht.

Natürlich könnten die Icons auch in einer separaten Tabelle gespeichert und per Abfrage hinzugeholt werden.
Titel: Re: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: Xoar am November 27, 2016, 19:39:17
@ebs
Mhh ich hätte schon gerne diese Ansicht im Formular, sprich nen Steuerelement was ein Ordnerinhalt darstellt.

Aber vorstellen kann ich mir das schon etwas

@MaggieMay
Ja das hab ich schon vermutet

Ok, ich merk schon eine ganz einfache super Lösung gibt es nicht.

Danke
Titel: Re: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: crystal am November 27, 2016, 20:28:48
Hallo xoar,

vielleicht helfen folgende Überlegungen.

Im Select erzeugst du ein Feld "Icon", dessen Wert den Pfad zu einem Icon-Verzeichnis unterhalb deiner Applikation beinhaltet. Dieses Feld kannst du einem Bild-Steuerelemt zuweisen, denn seit Access 2007 (oder früher) kann Access den Inhalt eines Feldes als Bild darstellen, sofern es sich tatsächlich um den kompletten Namen eines Bildes handelt.

Etwa so:
select ..., "<Verzeichnis>" & right(Dateiname,3) & ".jpg" as ICON ....

Im Formular hast du ein Bild, bei dessen Datenherkunft du "Icon" definierst.

Voraussetzung: du speicherst einmal in <verzeichnis> Icons nach dem Schema doc.jpg, pdf.jpg usw. ab.
<verzeichnis> könnte auch z.B. lauten
"application.currentproject.path" & "\images\".
Und statt
"right(Dateiname,3)"
könntest du den Dateityp natürlich auch mit
"right(dateiname,len(dateiname)-instrrev(dateiname,".")" (oder so ähnlich) bilden.

Das müsste eigentlich funktionieren, auch in Unterformularen, da der Wert "ICON" ja für jeden Record gebildet wird.

Bitte probier es mal so aus und melde dich, falls es klappt. Sorry, wenn meine o.g. Beispiele nicht 100%ig korrekt formuliert sind.

lg
crystal
Titel: Re: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: Xoar am November 27, 2016, 21:48:28
Jo werd ich morgen machen, danke für die Ansätze
Titel: Re: Anlagen extern speichern, mit Icon anzeigen
Beitrag von: Xoar am November 28, 2016, 08:36:59
also über die Pfadangabe in einer Tabelle klappt die Darstellung des Icons.

so reicht es auch erstmal. Dies Projekt muss ich auf ein anderen mal verschieben.