Jpeg in Access-Formular ??

Dieses Thema im Forum "Office-Programme" wurde erstellt von christine10000, 23. Februar 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. christine10000

    christine10000 Kbyte

    Registriert seit:
    3. März 2004
    Beiträge:
    392
    Hallo zusammen,

    würde mich als Access-Neuling bezeichnnen und möchte folgendes mit Access realisieren:

    In eine Produkt- und Kundendatenbank möchte ich Bilder im JPEG-Format des jeweiligen Produktes anzeigen lassen.

    Dabei soll auf der dargestellten Seite (Tabellenblatt) eine Beschreibung des Artikels mit den Daten des Lieferanten (Kunden) und eben das Bild sichtbar sein.
    Die Bilder sollen dabei nicht in die Datenbank aufgenommen, sondern mittels Link oder Pfadverweis dargestellt werden.
    Sämtliche Bilder sind in einem Topf oder Ordner irgendwo auf der Festplatte gespeichert.

    Wie setzte ich das ohne große Programmierkenntnisse um?

    Vielen Dank vorab für Euer Wissen
    es grüßt
    Christine
     
  2. Hotte_Gaviar

    Hotte_Gaviar ROM

    Registriert seit:
    24. März 2005
    Beiträge:
    5
    Hallo Christine,

    dies geht relativ einfach, allerdings nicht ganz ohne etwas Programmierung.
    Ich habe in einer Datenbank eine Tabelle angelegt in der zwei Felder existieren "Feld1" und "Feld2".
    Feld1 enthält als Beispiel die Artikelbezeichnung
    Feld2 enthält den Pfad auf die jeweilige JPEG-Datei (Textfeld) also zum Beispiel: C:\bild1.jpg
    Jetzt habe ich ein Formular eingerichtet, auf dem beide Felder zu finden sind. Feld2 muss auch im Formular vorhanden sein, es kann bei Bedarf ja "invisible" gemacht werden, so dass man es nicht sieht.
    Darüber hinaus füge ich im Formular ein Bild ein. Dies geht über die Steuerelemente-Toolbox. Dort findest Du ein Symbol für "Bilder".
    Jetzt clicke ich in der Entwurfsansicht des Formulars mit der rechten Maustaste oben links in die Ecke und wähle "Eigenschaften" aus dem Kontextmenü.
    Im sich daraufhin öffnenden Fenster gehe ich auf die Registerkarte "Ereignis" und such dort den Eintrag "Beim Anzeigen". Aus dem danebenstehenden Drop-Down-Feld wähle ich "Ereignisprozedur" und komme dann in die VB Entwicklungsumgebung.
    Dort sollte bereits etwas stehen wie:

    Private Sub Form_Current()
    End sub

    Dazwischen trage ich jetzt ein paar Zeilen Code ein, so das das Ganze wie folgt aussieht:
    Private Sub Form_Current()
    If Not (IsNull(Feld2)) Then
    Bild1.Picture = Feld2
    Else
    Bild1.Picture = ""
    End If
    End Sub

    Das wars auch schon. Nun aktualisiert sich das Bild beim "Durchblättern" der Datensätze automatisch.
    Im Moment wird nur abgefangen, ob im Feld2 auch wirklich etwas drinsteht. Steht dort ein Pfad auf eine Datei, die es nicht gibt, bekommst Du eine Fehlermeldung. Das kann man natürlich auch noch "abfangen".
    Ich hoffe, dass reicht als erste Idee.
    Wenn die Erklärung noch Fragen offen lässt, so schreibe einfach.

    Gruß Thorsten
     
  3. blindelinse

    blindelinse ROM

    Registriert seit:
    15. April 2005
    Beiträge:
    6
    Hallo zusammen,
    Ich habe meine Datenbank ( Test.mdb ) z.B. im Ordner ( DB ) und in diesem Ordner einen Ordner ( Bilder ) mit Fotos. Das ganze liegt auf Laufwerk ( D: ). Da dies aber dann auf eine CD soll, möchte ich, das der Pfad nicht ( D:\DB\Bilder\Foto01.jpg ) sondern einfach nur ( Bilder\Foto01.jpg ) heißen soll. Meine Frage, wie ist dies zu lösen, Access soll nicht den gesamten Pfad sondern in den Ordner nachschauen wo die Datenbank ( Test.mdb ) liegt.

    Danke vorerst
     
  4. Hotte_Gaviar

    Hotte_Gaviar ROM

    Registriert seit:
    24. März 2005
    Beiträge:
    5
    Hallo,

    der unten stehende Code lässt sich wie folgt verändern:

    Private Sub Form_Current()
    If Not (IsNull(Feld2)) Then
    Bild1.Picture = Application.CurrentProject.Path+"\"+Feld2
    Else
    Bild1.Picture = ""
    End If
    End Sub

    Damit wird vor den Eintrag im Feld2 der Datenbank der Pfad zur Datenbank angefügt.
    Somit kann man im Feld2 zum Beispiel "Bilder\Foto01.jpg" eintragen und Access sucht das Bild relativ vom aktuellen Pfad der Datenbank aus.

    Gruß Thorsten
     
  5. Basti81

    Basti81 Kbyte

    Registriert seit:
    10. Januar 2005
    Beiträge:
    317
    Ich habe mir auch mal eine Datenbank gemacht mit einen OLE Objekt und dann über ein formular einfach die Bilder eingefügt. Die Bilder werden dann in der mdb datei gespeichert und du brauchst keine extra Bilder mehr. Einziger Nachteil die MDB Datei wird natürlich sehr groß.
     
  6. blindelinse

    blindelinse ROM

    Registriert seit:
    15. April 2005
    Beiträge:
    6
    Mit OLE bin ich nicht Begeistert, es können kein Jgp eingefügt werden, zumindest nicht so wie die bmp-Dateien und die brauchen zu viel Platz, es sollen viele tausend (15000 derzeit und es werden immer mehr) Fotos rein, aber trotzdem danke.

    Danke Hotte_Gaviar, aber leider geht das nicht, bekomme immer
    Fehlermeldung.

    Laufzeitfehler '424':
    Objekt erforderlich

    Hab schon einiges versucht, aber kein Erfolg.
    Jetzt habe ich versucht nach deinen ersten Beitrag durchzugehen, auch kein Erfolg, wieder das selbe.
    Es sind einiges an Fragen offen, die muss ich erst zusammenstellen.
     
  7. blindelinse

    blindelinse ROM

    Registriert seit:
    15. April 2005
    Beiträge:
    6
    Hallo, irgendwas mach ich verkehrt.
    Ich erstelle eine Tabelle
    Feldname id, Primärschlüssen; Felddatentyp, Autowert
    Feldname Feld1; Felddatentyp, Text
    Feldname Feld2; Felddatentyp, Text

    >> Feld2 enthält den Pfad auf die jeweilige JPEG-Datei (Textfeld) also zum Beispiel: C:\bild1.jpg<<
    Nehme an ( C:\bild1.jpg )dann ins Feld2 reinschreiben, lieg ich da richtig?

    >>Jetzt habe ich ein Formular eingerichtet, auf dem beide Felder zu finden sind. Feld2 muss auch im Formular vorhanden sein, es kann bei Bedarf ja "invisible" gemacht werden, so dass man es nicht sieht.<<
    Erster Satz verständlich aber der zweite verunsichert mich, da ich beide Felder schon eingefügt habe und jetzt steht „Feld2 muss auch im Formular vorhanden sein“ oder ist gemeint noch einmal. Wo ist „bei Bedarf ja „invisible““ einzustellen?

    >> Darüber hinaus füge ich im Formular ein Bild ein. Dies geht über die Steuerelemente-Toolbox. Dort findest Du ein Symbol für "Bilder".<<
    Bin ich da nicht schon in der Entwurfsansicht, weil erst im nächsten Absatz laut dein schreiben soll in die Entwurfsansicht geschaltet werden. Ich habe in der Toolbox ein Sybol "Bild", habe Office2003, vielleicht ist es da ein bischen anders.
    >> Jetzt clicke ich in der Entwurfsansicht des Formulars mit der rechten Maustaste oben links in die Ecke und wähle "Eigenschaften" aus dem Kontextmenü.<<



    Bei dem Code stellt sich mir die Frage,
    >> Bild1.Picture = Feld2<<
    da meine Bilder alle mit einer Zahl beginnen, was anscheinent der Code nicht so zulässt habe ich einen Buchstaben davorgesetzt.
    Muss da nach >Bild1.< Picture stehen oder kann auch >jpg< stehen?

    Schönes Wochenend
     
  8. Hotte_Gaviar

    Hotte_Gaviar ROM

    Registriert seit:
    24. März 2005
    Beiträge:
    5
    Hallo,

    also noch mal ein paar Infos. Bei Bedarf kann ich dir auch die Datenbak zur Verfügung stellen.

    Zu 1:
    >> Feld2 enthält den Pfad auf die jeweilige JPEG-Datei (Textfeld) also zum Beispiel: C:\bild1.jpg<<
    Nehme an ( C:\bild1.jpg )dann ins Feld2 reinschreiben, lieg ich da richtig?
    Richtig!

    Zu 2:
    >>Jetzt habe ich ein Formular eingerichtet, auf dem beide Felder zu finden sind. Feld2 muss auch im Formular vorhanden sein, es kann bei Bedarf ja "invisible" gemacht werden, so dass man es nicht sieht.<<
    Erster Satz verständlich aber der zweite verunsichert mich, da ich beide Felder schon eingefügt habe und jetzt steht „Feld2 muss auch im Formular vorhanden sein“ oder ist gemeint noch einmal. Wo ist „bei Bedarf ja „invisible““ einzustellen?

    Gemeint ist nur einmal! Die Eigenschaft Invisible ist in der Entwurfsansicht im Eigenschaften-Fenster zu dem Feld2 zu finden und heißt in der deutschen Version "Sichtbar" - glaube ich zumindest.

    Zu 3:
    >> Darüber hinaus füge ich im Formular ein Bild ein. Dies geht über die Steuerelemente-Toolbox. Dort findest Du ein Symbol für "Bilder".<<
    Bin ich da nicht schon in der Entwurfsansicht, weil erst im nächsten Absatz laut dein schreiben soll in die Entwurfsansicht geschaltet werden. Ich habe in der Toolbox ein Sybol "Bild", habe Office2003, vielleicht ist es da ein bischen anders.

    Richtig! War mein Fehler! In der Toolbox das "Bild"-Element auswählen. Weiß nicht wie das in Office 2003 heißt. Denke aber mal genauso.

    Zu 4:
    Bei dem Code stellt sich mir die Frage,
    >> Bild1.Picture = Feld2<<
    da meine Bilder alle mit einer Zahl beginnen, was anscheinent der Code nicht so zulässt habe ich einen Buchstaben davorgesetzt.
    Muss da nach >Bild1.< Picture stehen oder kann auch >jpg< stehen?

    Also... Bild1 ist der Name des eigefügten "Bild"-Elements aus dem Formular (siehe Punkt 3). Standard-mäßig heisst das Objekt "Bild1", daher auch der Code. Wie das Objekt heisst, lässt sich ebenfalls in der Entwurfsansicht im Eigenschaften-Fenster unter "Name" finden.
    Die Eigenschaft danach muss (!!) "Picture" heissen und hat nichts damit zu tun, ob es sich nachher um eine BMP oder JGP oder GIF-Datei handelt. Den Dateinamen nimmt das System ja aus dem Eintrag im Feld2 der Datenbank. Insofern ist relevant, was da drin steht.

    So ich hoffe das hat etwas weiter geholfen. Wenn nicht melde Dich nochmal und ich schicke Dir die Datenbank.

    Gruß Hotte
     
  9. blindelinse

    blindelinse ROM

    Registriert seit:
    15. April 2005
    Beiträge:
    6
    Danke, Hotte_Gaviar,
    Die Fehlermeldung ist weg aber es funkt nicht mit den Bildern Anzeigen und aktuallisieren. Denke das der unterschied zu Office2003 vielleicht für diese Sache zu groß ist, leider habe ich mit Office der vorigen Versionen keine Ahnung.
    Kannst du mir Bitte deine DB schicken, ich schreibe dann das Ergebnis!

    Nochmals vielen Dank
     
  10. Seehas

    Seehas ROM

    Registriert seit:
    18. April 2005
    Beiträge:
    1
    Hallo Thorsten,
    ich hatte die gleiche Frage wie christine10000 und fand Deine Antwort super, hat bei mir sofort geklappt. Geht das eigentlich auch bei einem Bericht? Und wenn ja, wie?
    Vielen Dank schon mal!
     
  11. Hotte_Gaviar

    Hotte_Gaviar ROM

    Registriert seit:
    24. März 2005
    Beiträge:
    5
    Hallo Seehas,

    danke für das Feedback. Das Ganze funktioniert auch in einem Bericht. Eigentlich völlig analog.
    Lediglich das Ereignis ist ein anderes:

    Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    Bild1.picture = Feld2
    End Sub

    Die Felder "Feld1" und "Feld2" sowie das Bild-Element "Bild1" liegen im Detailbereich des Berichts.

    Gruß Thorsten
     
  12. blindelinse

    blindelinse ROM

    Registriert seit:
    15. April 2005
    Beiträge:
    6
    Danke schön Hotte_Gaviar,

    Prob gelöst, war eigentlich von mir ein kleiner Fehler im Code, aber hatte deswegen schon einige DB erstellt gehabt und das auf verschiedene Arten, so das ich nicht mehr wusste was ich wo noch einstellen, verstellen kann oder soll.
    Musste nur im Code statt ( Bild1 ), ( Bild7 ) schreiben und es funkte.
    Naja, so Kleinigkeiten machen sich halt bemerkbar.
     
  13. blindelinse

    blindelinse ROM

    Registriert seit:
    15. April 2005
    Beiträge:
    6
    Hallo,
    würde gern aus meinem Formular wie oben beschrieben ein Endlosformular machen, nur die Bilder werden nicht übernohmen. Im ganzen Formular ist immer gerade nur das Bild vorhanden auf welchen Datensatz ich mich gerade befinde und das so oft es Datensätze gibt, habe z.B. 100 Datensätze so habe 100 mal das selbe Bild.
    Wie kann ich das problem lösen, so das ich zu jeden Datensatz das richtige Bild bekomme?

    Bin für jede Hilfe dankbar
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen