Announcement

Collapse
No announcement yet.

long binary-daten in Access Bericht anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • long binary-daten in Access Bericht anzeigen

    Hallo,

    ich suche eine Lösung wie ich in einem Access Bericht "Long binary-Daten" Anzeigen kann.

    Das sind Bilder die als binärstream in der Datenbank abgespeichert wurden.

    Ich habe micht schon wund gegoogelt aber bisher keine Lösung gefunden.

    Danke schon mal im voraus für Eure kompetenten Antworten.

  • #2
    Wie speicherst du diese? Access wird für die eigene Verarbeitung einen sogenannte OLE-Header in den Daten erwarten.

    Comment


    • #3
      Die Daten sind in einm MS Sql Server 2005 als binärdaten abgelegt und werden in eine Access Datenbank übergeben. Die Daten liegen also folglich als binärdaten vor.
      Schau ich mir die Tabelle an steht dort "Long Binary-Daten". Schau ich mir die Abfrage in der Datenbank Ansicht an erscheint OLE-Objekt.

      Comment


      • #4
        wohl doch ne harte Nuss

        Na so wie ich das sehe konnte dieses Problem wohl noch keiner lösen.

        Na ja wenn es einfach wär hätte ich es auch selbst gekonnt.

        Comment


        • #5
          Na so wie ich das sehe konnte dieses Problem wohl noch keiner lösen.
          Was hast DU denn inzwischen alles versucht und welche Probleme gab es?




          Geht es nicht, einfach ein "gebundenes Objektfeld" auf den Bericht zu ziehen und mit der Tabellenspalte zu verknüpfen ?

          Auch Long Binary - Daten sollten irgendeinen sinnvollen Inhalt haben - ein Bild, ein Worddokument oder so. Wovon sprechen wir hier eigentlich und wie soll das auf dem Bericht dargestellt werden ?

          Ansonsten kann man Binärdaten noch via GetChunk() aus dem Recordset abrufen und in ein Binärarray speichern, von dort aus kann man per VBA dann alles Mögliche anstellen. Die entsprechende Routine im "OnFormat" Ereignis eingebunden und schon sollte da was gehen.

          Tino
          Ich habs gleich!
          ... sagte der Programmierer.

          Comment


          • #6
            Kannst du das gleich Bild mal direkt in Access einfügen und die binären unterschiede dir betrachten. Ich vermute trotz der Anzeige als "OLE-Objekt" das der nötige Header fehlt.

            Comment


            • #7
              Geht es nicht, einfach ein "gebundenes Objektfeld" auf den Bericht zu ziehen und mit der Tabellenspalte zu verknüpfen ?

              OLE funktioniert mit binary-daten nicht.

              Auch Long Binary - Daten sollten irgendeinen sinnvollen Inhalt haben - ein Bild, ein Worddokument oder so. Wovon sprechen wir hier eigentlich und wie soll das auf dem Bericht dargestellt werden ?

              Wie oben geschrieben handelt es sich um Bilddateien (JPG)

              Ansonsten kann man Binärdaten noch via GetChunk() aus dem Recordset abrufen und in ein Binärarray speichern, von dort aus kann man per VBA dann alles Mögliche anstellen. Die entsprechende Routine im "OnFormat" Ereignis eingebunden und schon sollte da was gehen.

              Das muß wohl auch die Lösung sein. Aber wie gehe ich das an.
              Auf den Bericht ein Bild ziehen?
              Und dann dem Bild sagen, Du mußt per GetChunk() Dein Bild aus der Tabelle holen mit der BilderID 123?
              Ich habe mit VBA noch nichts gemacht, wie gehe ich das an.
              Gibts dafür eine Tutorial?

              Danke schon mal für die kompetente Antwort, wir kommen der Sache schon näher.
              -Pepples-

              Comment


              • #8
                Ungetestet - aber vielleicht als Einstieg

                Code:
                Dim BinaryData() As Byte
                
                ReDim BinaryData(Me![Feldname].FieldSize)
                BinaryData = Me![Feldname].GetChunk(0, Me![Feldname].fieldszize)
                Bild1.PictureData = BinaryData
                Viel Erfolg
                Ich habs gleich!
                ... sagte der Programmierer.

                Comment


                • #9
                  Wo trage ich den Code ein, unter Module?

                  Und woher weis Access wenn es diesen Code ausführen soll.

                  Weise ich das unter Eigenschaften des Feldes zu?

                  Danke schon mal für die wertvollen Tipps.

                  Comment


                  • #10
                    Berichtsentwurf -> Detailbereich anklicken
                    Rechte Maustauste -> EIgenschaften
                    Tab Ereignis wählen
                    "Beim Formatieren" auf "..." klicken -> "Code" auswählen

                    VBA - Code in den Rumpf
                    Code:
                    Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
                    
                    End Sub
                    schreiben.

                    Wird für jede Zeile / jeden Datensatz automatisch durch Access ausgeführt, bevor gedruckt wird.

                    Viel Erfolg
                    Tino
                    Ich habs gleich!
                    ... sagte der Programmierer.

                    Comment


                    • #11
                      funzt noch nicht

                      Hallo Tino,

                      ich bekomme immer ein Laufzeitfehler 438
                      Objekt unterstützt diese Eigenschaft der Methode nicht

                      Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)

                      Dim BinaryData() As Byte

                      hier steht der Debugger-> ReDim BinaryData(Me![Bild].FieldSize)
                      BinaryData = Me![Bild].GetChunk(0, Me![Bild].fieldszize)
                      Bild1.PictureData = BinaryData

                      End Sub

                      Habe ich denn die Felder richtig benannt?
                      [Bild] ist mein Feld auf dem Bericht und entspricht auch dem Feldnamen der Tabelle Bilder (Tabelle Bilder enthält die Felder "Nummer" und "Bild")
                      Bild enthält die Long-binary Daten und Nummer ist nur ein String
                      Auf dem Bericht sind die 2 Felder "Nummer" und "Bild"

                      Was ist Bild1 eine Variable?
                      Was ist PictureData eine Access funktion?

                      Welche Eigenschaft muss das Feld Bild auf dem Bericht haben?
                      Ein OLE Objekt? Oder nur ein Bild?

                      Danke für die Antworten, vielleicht bekommen wir es ja doch noch hin.

                      Comment

                      Working...
                      X