Freigeben über

PDF-Dokumente in Access ǁ eingebettete Bilder in Formular anzeigen

Anonym
2015-05-24T13:00:28+00:00

Hallo,

Ich habe eine Datenbank, die auch Bild-Objekte enthält. Diese sollen auch in einem Formular angezeigt werden. Da mit diesem Formular meist die Datenbank gescrollt wird, müssen die Bilder rasch erscheinen (d.h., das Scrollen darf nicht verlangsamt werden).

Vor Jahren habe ich nach etlichen Versuchen eine Methode gefunden, die bisher sehr gut funktionierte: die Bilder wurden als PDF-Dokumente gespeichert. Man musste nur jeweils mit Rechtklick in den Rahmen ein neues Objekt erstellen, dieses dann als Adobe Acrobat-Dokument definieren und konnte dann die gewünschte PDF-Datei einbinden.

Das grosse Ärgernis: nach dem letzten Upgrade von Adobe auf Acrobat Reader DC geht das nicht mehr ! Alte Bilder werden zwar nach wie vor angezeigt, aber man kann keine neuen Bilder einsetzen, da in Access 2010 der PDF-Objekt-Typ nun verschwunden ist. Die zweite Access-Möglichkeit, eine existierende Datei zu importieren, hat mit PDF-Dokumenten nie funktioniert (Fehlermeldung: "Während der Kommunikation von Microsoft Access mit dem OLE-Server oder dem Active-X Steuerelement ist ein Fehler aufgetreten").

Gibt es eine Möglichkeit, weiterhin PDF-Dokumente in eine Access-Datenbank zu speichern, ohne sie in einem Package zu verstecken ?

Wenn nicht, ist das BMP-Format wirklich die einzige mögliche Lösung ? Daran stört mich, dass beim Doppelklick aus Access heraus Paint anstatt meines als Standard definierten Bildbearbeitungsprogramms geöffnet wird (man muss den Inhalt dann per Hand transferieren). Und die .BMPb sind bei gleicher Auflösung über 20× grösser als die entsprechenden .PDFs !

NB: Acrobat muss nicht unbedingt sein, ich verfüge für PDFs auch über Nitro-PDF pro.

Besten Dank im Voraus für jeden Hilfetipp !

Microsoft 365 und Office | Access | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

Antwort, die vom Frageautor angenommen wurde

  1. Anonym
    2015-05-26T13:55:09+00:00

    Hallo!

    Es ist nicht ganz klar, welche Technik du mit "die zweite Access-Möglichkeit" meinst. Das klingt noch nach dem Datentyp OLE-Objekt.

    In Access 2010 gibt es 2 wesentlich effizientere Möglichkeiten für Bilder:

    • in der DB gespeicherte Bilder oder PDFs oder viele andere Dateitypen kannst du im Datentyp Anlage abspeichern, der auch ein Steuerelement zur Anzeige (für Bilder) und zum Öffnen bereitstellt, damit kann man sogar mehrere Objekte pro Datensatz speichern und es gibt keine zusätzliche Aufblähung mehr über die Bild/Objektdateigröße hinaus
    • für extern gespeicherte Bilder kann man einfach ein Bild-Steuerelement an den Text-Pfad binden

    Beide Varianten funktionieren im Endlosformular. s.a. http://www.donkarl.com?FAQ2.2

    5 Personen fanden diese Antwort hilfreich.
    0 Kommentare Keine Kommentare

3 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2015-06-15T11:32:49+00:00

    Hallo!

    Wo hast du denn nach dem Anlage-Datentyp gesucht?

    Es geht um den Datentyp eines Access-Tabellenfeldes, wie hier beschrieben:

    https://support.office.com/de-at/article/Anf%C3%BCgen-von-Dateien-und-Grafiken-an-Datens%C3%A4tze-in-der-Datenbank-bced3638-bfbc-43f0-822d-374bca2e6b40?ui=de-DE&rs=de-AT&ad=AT#__migbm_2

    Die Seite schildert den Datentyp in epischer Länge und Breite.

    Zum Thema "Bilder extern" sei gegen "Sinn und Zweck jeglicher Datenbank". Da widerspricht deine Meinung den meisten Herstellern, Systemen und Entwicklern. Es gibt in den meisten Datenbanksystemen irgendwelche Möglichkeiten, externe Dateien zu verwalten, auch in großen Serversystemen. Das hat versch. Gründe. Bei Access ist der wichtigste, die begrenzte Dateigröße von 2 GB pro Datenbankdatei. Bei ein paar hundert Bildern etc. ist da Schluss sogar mit dem effizienteren Anlage-Datentyp statt Bläh-OLE.

    Gediegene Access-Anwendungen bestehen ohnehin bereits aus 2 Dateien, nämlich Frontend und Backend s. http://www.donkarl.com?FAQ1.35 . Das Pfadproblem zu externen Dateien bei herumkopierten Anwendungen löst man meistens mit relativen Pfaden, z.B. mit einem Unterverzeichnissen zur Frontend- oder Backenddatei, in dem die Dateien gespeichert bzw. mitkopiert werden. Man speichert dann in der Tabelle nur den Namen der externen Datei und kann in Formularen etc. recht einfach den Pfad wieder zusammensetzen.

    0 Kommentare Keine Kommentare
  2. Anonym
    2015-06-15T07:54:24+00:00

    Besten Dank.

    Zur Klarheit: die zwei Möglichkeiten, Objekte einzubetten, sind (1) Neu erstellen und (2) Aus Datei erstellen. PDFs konnte man nur "Neu erstellen", wobei der Adobe-Server dann verlangte, eine existierende Datei auszuwählen. Nicht gerade logisch bezeichnet, aber der einzige Weg.

    Bilder extern zu speichern kommt überhaupt nicht in Frage. Das widerspricht meiner Ansicht nach auch Sinn und Zweck jeglicher Datenbank, und man kann den Speicherort dann auch nicht mehr ändern oder die Datenbank auf einem Stick mitnehmen (die extern gespeicherten Daten sind dann auf einem anderen Laufwerk, auch wenn man sie mit auf den Stick kopiert !).

    Den Datentyp Anlage habe ich nicht gefunden. Objekt-Typen gibt es von Bitmap bis Wordpad-Dokument viele, nur eben "Adobe Acrobat Dokument" nun in Access 2010 nicht mehr (aber weiterhin in Excel 2010 und Word 2010 !). Bei Packages kann man zwar alles Mögliche packen, aber ohne Doppelklick drauf sieht man in einem Formular jeweils nur ein Icon.

    Das Verschwinden von "Adobe Acrobat Dokument" aus der Access-Objektauswahlliste wurde eindeutig durch ein Office-Update verursacht. Da PDF-Dokumente weiterhin unterstützt sind und z.B. aus anderen Office-Anwendungen über copy/paste in Access-Felder eingefügt werden können, gibt es dafür keinen plausiblen Grund.

    Schade, dass Privatpersonen solche Bugs nicht direkt den zuständigen Microsoft-Entwicklern mitteilen können, wie es bei OpenSource-Software Standard ist…

    Grüsse

    0 Kommentare Keine Kommentare
  3. Anonym
    2015-05-25T08:24:12+00:00

    Zusatzinfo

    Vielleicht war ich etwas voreilig, das Adobe-Update zu verdächtigen. Es gab ja praktisch gleichzeitig auch etliche Microsoft Office 2010 ×64 Updates !!! Die einzeln zu deinstallieren und jedesmal dann zu testen, ob PDF nun wieder funktioniert, wäre sehr mühsam.

    Das Problem betrifft nämlich nur Access 2010 (×64). PDF-Bilder können nach wie vor in Word oder Excel über den bisherigen Weg eingefügt werden, und von dort per Copy + Paste in Access überführt werden. Der Adobe-Server funktioniert also an sich immer noch, nur ist der Umweg über Word oder Excel ziemlich aufwändig.

    Also versuchte ich, das zu automatisieren. Leider funktioniert aber folgender Word-VB-Code in Access nicht:

              Selection.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.DC", _

                                                    FileName:="", LinkToFile:=False, DisplayAsIcon:=False

    (Auch nicht mit Me![Photo].InlineShapes… ; InlineShapes und AddOLEObject kennt Access VB nicht.)

    Ich habe vergeblich versucht, zusätzliche Verweise (Bibilotheken) einzubinden, wie Acrobat, Adobe, 7-PDF, Nitro-PDF  und PDF…  Einige davon lassen sich gar nicht einbinden, die neu eingebundenen sind nutzlos.

    Vielleicht fehlt nur ein Eintrag in der Registry, oder jemand kann mich den Access-VB-Code angeben, oder muss ich doch den Umweg über Word oder Excel programmieren ?

    Danke im Voraus.

    0 Kommentare Keine Kommentare