Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Gebundene Bilder als Anlage speichern

Begonnen von Hondo, Oktober 12, 2016, 09:26:40

⏪ vorheriges - nächstes ⏩

Hondo

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

markusxy

Ich nehme an du hast es getestet.
Was ist denn dabei rausgekommen?

LG Markus

Hondo

Hallo,
nicht getestet, sonst würde ich nicht nach der Methode fragen wie man das macht.

Andreas

markusxy

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

Beaker s.a.

Hallo,
Zitatdass du in der Tabelle MSysRessources selbst nichts ändern kannst oder schon?
Wenn André Minhorst (http://minhorst.com/tl_files/download/Bilder.pdf)
von einem Tool zu diesem Zweck spricht, sollte es wohl möglich sein.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Hondo

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

Hondo

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

MaggieMay

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.
Freundliche Grüße
MaggieMay

Josef P.

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

Hondo

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

MaggieMay

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?!
Freundliche Grüße
MaggieMay

Hondo

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

Hondo

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

MaggieMay

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?
Freundliche Grüße
MaggieMay