none
Access Web App: Grafiken aus Tabellen in Berichten ausgeben

    Frage

  • Hallo,


    ich habe in Office365 eine Access Web App erstellt, deren Tabellen teilweise auch Bilder/Grafiken im .jpg-Format enthalten. Um die dort eingegebenen Daten ausgeben zu können, habe ich über die Schaltfläche "Bericht aus meinen Daten" eine lokale Desktop-Datenbank erstellt, mit der ich nun einen Bericht erstellen möchte. Und hier habe ich nun mein Problem: Bilder werden im Bericht nicht angezeigt, es wird lediglich ein leerer Rahmen angezeigt.

    Beim genaueren Hinsehen habe ich festgestellt, dass Access sämtliche Bilddaten in eigene Tabellen ausgelagert hat. So gibt es z.B. zu der Tabelle tblMasken eine weitere Tabelle namens tblMasken?Images, die drei Spalten enthält: ID (enthält eine Referenz-ID auf mein Feld in tblMasken), Image (enthält in der Datenblattansicht der Tabelle den Eintrag "OLE-Objekt") und das leere Feld SrcID (=Source-ID?).

    Wenn ich nun das Feld Image in einen leeren Bericht einfüge, wird mir sowohl in der Berichts- wie auch in der Seiten- und der Layoutansicht lediglich ein leerer Rahmen angezeigt. Auch die Eigenschaften helfen mir nicht weiter, hier gibt es zwar unter Anzeigeart scheinbar die Möglichkeit, zu bestimmen, ob das Bild (Eintrag Inhalt) oder ein Symbol (Eintrag Symbol) angezeigt wird, aber weder Bild noch ein Symbol erscheinen, wenn ich hier etwas umstelle.

    Was kann ich tun?

    Liebe Grüße


    André

    Dienstag, 3. Februar 2015 21:35

Antworten

  • Hallo!

    Das Darstellen dieser Bilder in einer Berichts-DB geht wegen Format-Problemen nur auf Umwegen. Andy Couch beschreibt das in seinem Buch: https://books.google.at/books?id=DO5cBgAAQBAJ&pg=PT218&lpg=PT218&dq#v=onepage


    cu
    Karl
    ******
    Access FAQ (de/it): http://www.donkarl.com
    Access Lobby: http://www.AccessDevelopers.org

    • Bearbeitet Karl DonaubauerMVP Mittwoch, 4. Februar 2015 13:28 Sig formatiert
    • Als Antwort markiert Jurugu22 Dienstag, 17. Februar 2015 16:03
    Mittwoch, 4. Februar 2015 13:26
  • Okay, ich habe gerade probiert, eine Verbindung per MS SQL Server 2012 herzustellen, scheitere aber leider beim Klick auf Verbinden mit folgender Fehlermeldung:

    TITEL: Verbindung mit Server herstellen
    ------------------------------

    Es kann keine Verbindung mit 'wcndtynpg6.database.windows.net' hergestellt werden.

    ------------------------------
    ZUSÄTZLICHE INFORMATIONEN:

    Cannot open server 'wcndtynpg6' requested by the login. Client with IP address '95.88.253.244' is not allowed to access the server.  To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.  It may take up to five minutes for this change to take effect.
    Login failed for user 'db_dc134dd3_9e04_4d99_85f0_0ebe3f0335f5_ExternalWriter'.
    This session has been assigned a tracing ID of 'c9af7f32-e9d1-430b-9046-75972f35c217'.  Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Fehler: 40615)

    Ich habe leider keine Ahnung, wie ich im Azure Management Portal den Zugang einrichten kann, geschweige denn, wie ich da eigentlich hinkomme... ;-)

    Auch von der "master database" weiß ich nix...

    Ich habe lediglich in Office365 das Azure AD entdeckt, wofür ich mich aber erst registrieren müsste... Ist das gemeint...?

    Kannst du mir weiterhelfen?

    André

    • Als Antwort markiert Jurugu22 Dienstag, 17. Februar 2015 16:03
    Freitag, 6. Februar 2015 17:38
  • Hallo,

    falsche Baustelle. Vergiss den (lokalen) SQL Server, der hat mit unserem Thema hier nix zu tun.

    Hier geht es darum, aus Access heraus per ODBC auf die SQL Azure-DB hinter der Web App zuzugreifen um Tabellen einzubinden. Das macht auch die "automatische" Berichts-DB, aber wahrscheinlich mit einem anderen ODBC-Treiber, als dem für die Bild-Geschichte notwendigen (Native Client). Das Prozedere ist z.B. hier beschrieben:

    http://blogs.technet.com/b/the_microsoft_access_support_team_blog/archive/2014/03/24/how-to-make-external-connections-to-an-access-web-app-new.aspx

    Dort alle Punkte durchnehmen außer dem letzten, in dem es wieder um SSMS geht, das wir hier eben nicht brauchen.


    cu
    Karl
    Access FAQ (de/it): donkarl.com
    Access Lobby: AccessDevelopers.org

    • Als Antwort markiert Jurugu22 Dienstag, 17. Februar 2015 16:03
    Freitag, 6. Februar 2015 21:55

Alle Antworten

  • Hallo!

    Das Darstellen dieser Bilder in einer Berichts-DB geht wegen Format-Problemen nur auf Umwegen. Andy Couch beschreibt das in seinem Buch: https://books.google.at/books?id=DO5cBgAAQBAJ&pg=PT218&lpg=PT218&dq#v=onepage


    cu
    Karl
    ******
    Access FAQ (de/it): http://www.donkarl.com
    Access Lobby: http://www.AccessDevelopers.org

    • Bearbeitet Karl DonaubauerMVP Mittwoch, 4. Februar 2015 13:28 Sig formatiert
    • Als Antwort markiert Jurugu22 Dienstag, 17. Februar 2015 16:03
    Mittwoch, 4. Februar 2015 13:26
  • Okay, das dort beschriebene Vorgehen habe ich ausprobiert, sprich ich habe (für den Bericht) mein gebundenes Objektfeld unsichtbar gemacht, ein Bild-Steuerelement in den Detailbereich eingefügt, es "ImageData" benannt und dann im Beim Formatieren-Ereignis des Detailbereichs folgenden Code hinterlegt:

    Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
        Me.ImageData.PictureData = Me.Image
    End Sub
    

    Leider kommt bei der Ausführung des Codes jetzt die Fehlermeldung

    Laufzeitfehler 2192: Die von Ihnen angegebene Bitmap liegt nicht im Format geräteunabhängiger Bitmapdateien (DIB-Erweiterung) vor.

    Leider lässt die Web App einen Upload von .bmp oder .dib Dateien aber nicht zu, nur .jpg, .gif, .png usw. sind möglich, ich kann die Grafiken also gar nicht im Bitmapformat hinterlegen.

    Was jetzt?

    Donnerstag, 5. Februar 2015 08:10
  • Hallo!

    1. Diese Meldung kommt gerne, wenn sich in dem Feld mal nix befindet. Falls es solche Datensätze bei dir gibt, dann fange die mal testweise in der zugrundeliegenden Abfrage ab und schau, ob die Sache dann funktioniert.

    2. Andy gibt in dem gelinkten Text noch eine "Warning" ohne genau zu beschreiben, welches Problem genau ansonsten auftritt. Da das Buch neu ist, dürfte die Warnung aktuell sein. Du könntest ihr jedenfalls noch testweise folgen, d.h. nicht die von Access verlinkte Tabelle verwenden, sondern sie zu Fuß selber über eine ODBC-Computerdatenquelle verlinken.


    cu
    Karl
    ******
    Access FAQ (de/it): http://www.donkarl.com
    Access Lobby: http://www.AccessDevelopers.org

    Donnerstag, 5. Februar 2015 08:33
  • Hallo,

    zu 1.: An fehlenden Daten kann es (leider) nicht liegen, die Tabelle ist prall gefüllt.

    zu 2.: Das hatte ich schon befürchtet... ;-) Na, dann werde ich mich mal mit Andys Kapitel 9 beschäftigen. Melde mich dann.

    Erstmal danke!

    André

    Donnerstag, 5. Februar 2015 09:28
  • Hallo,

    ich hab's gerade getestet: Mit einer per Hand eingebundenen Web-App-?images-Tabelle klappt die Darstellung über Picturedata etc. wie von Andy beschrieben.

    Ein Hinweis noch, denn wahrscheinlich willst du die Bilder mit den Daten(sätzen) verknüpfen:

    Die Verknüpfung zwischen der eigentlichen Datentabelle und der ?images-Tabelle muss zwischen dem Bildfeld der Datentabelle und dem Feld "ID" der ?images-Tabelle erfolgen.

    Dabei gibt's (evtl. abhängig vom verwendeten ODBC-Treiber) noch die Hürde, dass "ID" in Access als Text ankommt und daher die Verknüpfung mit dem Long-Feld der Datentabelle in einer Abfrage nicht direkt klappt.

    Du kannst entweder eine vorbereitende Abfrage erstellen mit clng(Id) und die dann mit der Datentabelle verknüpfen, oder so wie ich in meinem Test im SQL-Text direkt den JOIN-Ausdruck ändern, also:

    ...INNER JOIN...ON Datentabelle.Bildfeld=clng([Datentabelle?images].ID)


    cu
    Karl
    ******
    Access FAQ (de/it) - Access Lobby

    Donnerstag, 5. Februar 2015 12:41
  • Okay, ich habe gerade probiert, eine Verbindung per MS SQL Server 2012 herzustellen, scheitere aber leider beim Klick auf Verbinden mit folgender Fehlermeldung:

    TITEL: Verbindung mit Server herstellen
    ------------------------------

    Es kann keine Verbindung mit 'wcndtynpg6.database.windows.net' hergestellt werden.

    ------------------------------
    ZUSÄTZLICHE INFORMATIONEN:

    Cannot open server 'wcndtynpg6' requested by the login. Client with IP address '95.88.253.244' is not allowed to access the server.  To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.  It may take up to five minutes for this change to take effect.
    Login failed for user 'db_dc134dd3_9e04_4d99_85f0_0ebe3f0335f5_ExternalWriter'.
    This session has been assigned a tracing ID of 'c9af7f32-e9d1-430b-9046-75972f35c217'.  Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Fehler: 40615)

    Ich habe leider keine Ahnung, wie ich im Azure Management Portal den Zugang einrichten kann, geschweige denn, wie ich da eigentlich hinkomme... ;-)

    Auch von der "master database" weiß ich nix...

    Ich habe lediglich in Office365 das Azure AD entdeckt, wofür ich mich aber erst registrieren müsste... Ist das gemeint...?

    Kannst du mir weiterhelfen?

    André

    • Als Antwort markiert Jurugu22 Dienstag, 17. Februar 2015 16:03
    Freitag, 6. Februar 2015 17:38
  • Hallo,

    falsche Baustelle. Vergiss den (lokalen) SQL Server, der hat mit unserem Thema hier nix zu tun.

    Hier geht es darum, aus Access heraus per ODBC auf die SQL Azure-DB hinter der Web App zuzugreifen um Tabellen einzubinden. Das macht auch die "automatische" Berichts-DB, aber wahrscheinlich mit einem anderen ODBC-Treiber, als dem für die Bild-Geschichte notwendigen (Native Client). Das Prozedere ist z.B. hier beschrieben:

    http://blogs.technet.com/b/the_microsoft_access_support_team_blog/archive/2014/03/24/how-to-make-external-connections-to-an-access-web-app-new.aspx

    Dort alle Punkte durchnehmen außer dem letzten, in dem es wieder um SSMS geht, das wir hier eben nicht brauchen.


    cu
    Karl
    Access FAQ (de/it): donkarl.com
    Access Lobby: AccessDevelopers.org

    • Als Antwort markiert Jurugu22 Dienstag, 17. Februar 2015 16:03
    Freitag, 6. Februar 2015 21:55
  • Hallo Karl,

    hat wieder nicht geklappt...

    Ich habe die ODBC-Verbindung aufgebaut, so wie in dem Link von dir beschrieben, hat auch alles geklappt (Treiber-Installation, Erstellen einer neuen ODBC-Datenquelle und einbinden dieser in meine lokale Access-DB). Aber wenn ich meinen Bericht erstelle (oder auch ein Formular) kommt weiterhin der der Laufzeitfehler 2192: Die von Ihnen angegebene Bitmap liegt nicht im Format geräteunabhängiger Bitmapdateien (DIB-Erweiterung) vor.

    Hast du vielleicht eine Bitmap für deinen Test verwendet? Hast du noch eine Idee...?

    André, verzweifelt

    Sonntag, 8. Februar 2015 18:09
  • Hallo Karl,

    hast du irgendeine Idee, wie wir überprüfen können, warum das bei dir klappt und bei mir nicht...?

    LG

    André

    Mittwoch, 11. Februar 2015 17:46
  • Hallo,

    nicht wirklich. Bei mir klappt's einfach mit dem Native Client 11 und ein paar jpgs wie von Andy beschrieben, wobei es ja unterschiedliche jpgs gibt. Also vielleicht nochmal ein anderes jpg-Format testen.


    cu
    Karl
    Access FAQ (de/it): donkarl.com
    Access Lobby: AccessDevelopers.org

    Donnerstag, 12. Februar 2015 14:04
  • So, letzlich habe ich doch was zum Laufen gebracht, auch wenn ich noch nicht da bin, wo ich hin will. Ich habe gerade eine komplett neue Web App erstellt mit nur einer Tabelle und habe dann eine neue Desktop-Datenbank erstellt und diese mit der neuen App verknüpft. Hat funktioniert, konnte zwei .jpegs in einem Formular darstellen.

    Muss jetztmal sehen, warum es mit meiner bestehenden nicht geklappt hat, vielleicht muss ich auch einfach eine komplett neue Desktop-DB erstellen und nicht die alte weiterverwenden, mal sehen.

    Auf jeden Fall vielen Dank Karl für deine Hilfe!!!

    Dienstag, 17. Februar 2015 16:03