Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Hondo am Oktober 12, 2016, 09:26:40

Titel: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 12, 2016, 09:26:40
Hallo,
wie kann ich gebundene Bilder in einem Formular in einer Tabelle als Anlage speichern?
Im spez. gehts um die Access interne Bildergalerie wo die Bilder in MSysRessources gespeichert werden.
Wenn ich aus einer DB heraus ein Formular importiere möchte ich dass per Code die eingebundenen Bilder im Formular als Anlage in MSysRessources gespeichert werden.

Ist das möglich?
Gruß Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: markusxy am Oktober 12, 2016, 10:27:40
Ich nehme an du hast es getestet.
Was ist denn dabei rausgekommen?

LG Markus
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 12, 2016, 11:55:31
Hallo,
nicht getestet, sonst würde ich nicht nach der Methode fragen wie man das macht.

Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: markusxy am Oktober 12, 2016, 12:58:18
Mit testen meine ich, ob die Bilder beim Import automatisch übertragen und gespeichert werden.
Ich nehme - mangels Möglichkeit der Prüfung - an, dass du in der Tabelle MSysRessources selbst nichts ändern kannst oder schon?
LG Markus
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Beaker s.a. am Oktober 12, 2016, 13:40:18
Hallo,
Zitatdass du in der Tabelle MSysRessources selbst nichts ändern kannst oder schon?
Wenn André Minhorst (http://minhorst.com/tl_files/download/Bilder.pdf (http://minhorst.com/tl_files/download/Bilder.pdf))
von einem Tool zu diesem Zweck spricht, sollte es wohl möglich sein.
gruss ekkehard
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 12, 2016, 17:04:28
Hallo,
das genannte Tool ist nichts anderes als die Bildergallerie selbst.
Ich hab es zwar noch nicht probiert, aber warum sollte es nicht möglich sein?
Einen Code hab ich dazu schon:
http://www.access-programmers.co.uk/forums/showpost.php?p=826349&postcount=3
aber die Bilder nicht in einem Verzeichnis vorliegen sondern in Bildsteuerelementen des Forms.

Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 12, 2016, 17:17:06
OK, eben getestet, funktioniert:
Sub test()
    Dim db As DAO.Database
    Dim rsParent As DAO.Recordset2
    Dim rsChild As DAO.Recordset2

    Set db = CurrentDb
    Set rsParent = db.OpenRecordset("MSysResources", 2)
    rsParent.AddNew
    rsParent.Fields("Extension") = "gif"
    rsParent.Fields("Name") = "glossar"
    rsParent.Fields("Type") = "img"

    Set rsChild = rsParent.Fields("Data").value

    rsChild.AddNew
    rsChild.Fields("FileData").LoadFromFile ("C:\Users\Andreas Vogt\Pictures\icons\glossar.gif")

    rsChild.Update
    rsParent.Update
   
    Set rsChild = Nothing
    Set rsParent = Nothing
End Sub

Aber das löst noch nicht das Problem die Bilder aus den Bildsteuerelementen zu verwenden.

Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: MaggieMay am Oktober 12, 2016, 18:13:37
Hallo Andreas,

ein Bild-Steuerlement mit einem eingebetteten Bild speichert seinen ursprünglichen Namen in der Picture-Eigenschaft. Außerdem gibt es noch eine ImageData-Eigenschaft, die evtl. die Daten dazu enthält. Ich weiß aber nicht, wie man diese auf wiederverwendbare Art auslesen könnte. Aber vielleicht können ja andere etwas mit diesen Informationen anfangen.
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Josef P. am Oktober 12, 2016, 19:42:54
Hallo!

Um die Bilder aus MSysResources zu verwenden, musst du nur über "Bild einfügen" das Bild auswählen. Dann wird ein Bild-Steuerelement mit dem ausgewählten Bild eingefügt.
(Wenn du das Bild direkt über die Tabelle eingefügt hast, ist ein Anwendungsneustart erforderlich, um das Bild in der Auswahl zu sehen.)

Willst du die Bilder über einen Datensatz anzeigen lassen, ist der Name in einem Textfeld erforderlich.
Du leerst dafür im Bildsteuerelement die Bild-Eigenschaft und bindest das Steuerelement über die Eigenschaft Steuerelementinhalt an das Datenfeld. Die Eigenschaft Bildtyp muss auf Freigegeben (Shared) stehen.

mfg
Josef
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 12, 2016, 21:17:36
Hallo,
danke für die Antworten.
Josef, bei mir funktioniert es das Anzeigen von zur Laufzeit eingefügter Bilder in MSysResources im Bildsteuerelement.
Das Bild wird zwar nicht in der Bildergalerie angezeigt, ist aber trotzdem im Endlosformular sichtbar.
Hab das jetzt 2x mit verschiedenen Bildern getestet die noch nicht vorhanden waren. (Acc 2010)

Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: MaggieMay am Oktober 13, 2016, 00:59:14
Zitat von: Hondo am Oktober 12, 2016, 21:17:36
Das Bild wird zwar nicht in der Bildergalerie angezeigt, ist aber trotzdem im Endlosformular sichtbar.
Ich verstehe nicht ganz was du damit sagen willst. Ist das nun ok für dich oder nicht?
Und hast du nun eine Lösung für die Speicherung der eingebetteten Bilder gefunden und wie sieht sie aus?

PS:
So wie ich das sehe, ist Josefs Beitrag keine Antwort auf die eigentliche Frage, wie die Bilder aus Formularen in die Systemtabelle eingefügt werden können, oder wie ist das zu verstehen?!
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 13, 2016, 07:14:09
Hallo,
nein eigentlich nicht.
Josef weiss um was es dabei geht, daher seine Antwort.
Es geht um Natives TreeView in Access.
Das Ziel ist dass man wann immer man ein TV benötigt, einfach das TV-Formular importiert und in einem Unterformular einbindet. Dabei sollten die häufig benutzten Icons wie Folder, Collapse, Expand, Item etc. einfach über das Forum mit importiert werden ohne dass man diese jedesmal über Bildeinfügen in die Galerie schreibt.

Mein Test ging darum ob man bei zur Laufzeit eingefügter Bilder überhaupt arbeiten kann.
Was jetzt noch fehlt ist eine Funktion "loadFromPicturebox".

Gruß Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: Hondo am Oktober 13, 2016, 09:43:49
Hallo,
Jetzt bin ich aber wirklich baff, das ganze ist noch viel einfacher als ich gedacht hatte.
Eingebettete Bilder kann ich einfach über die Funktion LoadFromFile(Me.Picture1.image) in einer Tabelle als Anlage speichern,
und eben getestet, ich brauch auch keine MSysResources sondern das anzeigen von Bildern per Datenherkunft aus Anlagefeldern funktioniert über ganz normale Tabellen.

D.H. beim ersten Aufruf Tabelle für die Icons erstellen, und die embedded Pictures als Anlage darin speichern.
Andreas
Titel: Re: Gebundene Bilder als Anlage speichern
Beitrag von: MaggieMay am Oktober 13, 2016, 12:01:53
Hi,

da kommt mir grad eine späte Frage, nämlich:
Warum sollten die eingebetteten Bilder beim Import eines Formulars überhaupt separat gespeichert werden? Die gehen doch nicht verloren, oder?