Neuigkeiten:

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

Mobiles Hauptmenü

Fehler 2220 bei eingebettetem Bild

Begonnen von Gockel67, Heute um 10:36:49

⏪ vorheriges - nächstes ⏩

Gockel67

Moin Gemeinde,

ich hab hier einen Fehler den ich nicht verstehe.
Folgende Vorgehensweise (als Beispiel):

Auf einer Form erstelle ich ein Bild - Bildtyp eingebettet - BildA
Ich erstelle ein leeres Bild - BildB
Im Form_Load-Ereignis schreibe ich BildB.Picture = BildA.Picture.

Das funktioniert.

Wenn ich jetzt Access schliesse und erneut aufrufe bekomme ich die Fehlermeldung

Fehler 2220 Microsoft Access kann die Datei 'BildA.png" nicht öffnen.

Kann jemand von euch den Fehler nachvollziehen und mir sagen woran das liegen könnte?

Wünsche allen eine schöne Woche
Jörg

PhilS

Zitat von: Gockel67 am Heute um 10:36:49Auf einer Form erstelle ich ein Bild - Bildtyp eingebettet - BildA
Ich erstelle ein leeres Bild - BildB
Im Form_Load-Ereignis schreibe ich BildB.Picture = BildA.Picture.

Das funktioniert.

Wenn ich jetzt Access schliesse und erneut aufrufe bekomme ich die Fehlermeldung

Fehler 2220 Microsoft Access kann die Datei 'BildA.png" nicht öffnen.
Wenn du das BildA-Steuerelement erstellst und dabei ein Bild auswählst, wird der Standard-Dateisystempfad auf das Verzeichnis gesetzt, in dem sich das Bild befindet.
Da du das Bild einbettest, wird in der Picture-Eigenschaft des Steuerelements nur der reine Dateiname ohne Pfad gespeichert. Für BildA ist das OK, weil das Bild eingebettet ist und die ursprüngliche Datei daher irrelevant ist.

Die Picture-Eigenschaft eines Bild-Steuerelements enthält entweder den kompletten Pfad (Verknüpft) oder nur den reinen Dateinamen (Eingebettet) zur Bilddatei.

Wenn du jetzt BildB.Picture = BildA.Picture schreibst, versucht Access das BildA.png zu finden und zu öffnen. Wenn der Standard-Dateisystempfad noch der Pfad des Bildes ist (weil du es gerade von dort ausgewählt hattest), funktioniert das auch. Nachdem du Access neu startest, ist der Standard-Dateisystempfad anders und das Bild wird nicht mehr gefunden.

Lange Rede, kurzer Sinn:
Vermutlich ist es für deine Zwecke sinnvoller, wenn du nicht den Pfad (Picture), sondern die eigentlichen Binärdaten des Bildes (PictureData) zuweist.

BildB.PictureData = BildA.PictureData

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Gockel67

Hallo PhilS,

vielen Dank für deine ausfühliche Antwort. So funktioniert es.

Liebe Grüße
Jörg