Access - Export von Bildern von den Image-Steuerelementen in Formularen
Ich habe die Suche nach einem Weg zum extrahieren von Bildern aus access-Formulare. Eine Suche auf Google wird fast immer zeigen Sie auf OLEtoDisk. Diese software ermöglicht das exportieren von gespeicherten Bildern in OLE-Felder in access-Tabellen. Dies ist nicht das, was ich will.
Ich habe ein Formular mit einigen logos, Header und hintergrund-Bilder. Diese Bilder machen die Datenbank werden größer und größer (weil Sie eingebettet sind in die form). Ich würde extrahieren Sie Sie, legen Sie Sie auf unserem server zusammen mit back-end-Datei und fügen Sie Sie zurück zu mein Formen, aber dieses mal als verknüpfte Bilder anstelle von eingebetteten Bildern.
Ich hoffe ich mache mich verständlich. Alle Vorschläge sind willkommen.
EDIT : Hinzugefügt den code, den ich verwende, um exportieren Sie ein Image-Steuerelement ist PictureData als image-Datei. Dieser code funktioniert nicht wie vorgesehen. Ich fand heraus, dass PictureData ist ein byte-array, aber nach kopieren in eine Datei, bekomme ich ein NUL-Zeichen jeweils zwei Zeichen.
Public Function savePict(pImage As Access.Image)
Dim fname As String 'The name of the file to save the picture to
Dim iFileNum As Double
fname = Environ("Temp") + "\temp.png" ' Destination file path
iFileNum = FreeFile 'The next free file from the file system
Open fname For Binary Access Write As iFileNum
Dim tbyte As Variant
Dim i As Double
'Write the byte array to the file
For i = 0 To Len(pImage.PictureData)
Put #iFileNum, , pImage.PictureData(i)
Next i
Close #iFileNum
End Function
- Ich Tat dies vor vielen Jahren. Der einzige überrest einer Lösung kann ich im moment die Suche nach dem undokumentierten system commamd: 712, ex. SysCmd(712,PictureData)
- Nach mehr sucht, fand ich, dass ich sparen müssen die PictureData eines Bild-Steuerelements in einer Datei. Ich fand heraus, dass PictureData ist ein byte-array, aber nach kopieren in eine Datei, bekomme ich ein NUL-Zeichen jeweils zwei Zeichen. Irgendeine Idee?
- Ich denke, PictureData muss konvertiert Base64.
- Vielen Dank für Ihre Hilfe. Sie zeigte mir den Weg. Am Ende brauchte ich eine Umwandlung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bild Daten wird eine EMF-Datei, mit einem wrapper von 8 bytes.
Das ist Ihre routine geändert, um die korrekte Datei-Erweiterung
Schließlich, hier ist der code, arbeitete als gedacht : Export als PNG-Bild aus einer form der Bild-Steuerelement.
Wenn Sie schauen, um re-verwenden Sie das Bild in einer anderen access-Datenbank (d.h. Sie verloren die ursprüngliche image-Datei, sondern es benutzen wollen, an anderer Stelle), eine weit einfachere Methode wäre zum importieren der Objekt (Formular, Bericht usw.) in Ihre neue Access-Datenbank über den Externen Daten -> Access-Menü.
Können Sie dann einfach kopieren und einfügen das Bild-Steuerelement, wo Sie wollen, es zu benutzen...
Leider kopieren/einfügen von Bild-Steuerelementen von Access-Datenbanken nicht funktioniert, wie Sie möchten.