1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Jpeg in Access-Formular ??

Discussion in 'Office-Programme' started by christine10000, Feb 23, 2005.

Thread Status:
Not open for further replies.
  1. 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. 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. 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. 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

    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. 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. 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. 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. 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

    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. 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. 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. 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
     
Thread Status:
Not open for further replies.

Share This Page