Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Foto in Formular anzeigen

Begonnen von srunge, Oktober 27, 2010, 21:22:48

⏪ vorheriges - nächstes ⏩

srunge

Hallo liebe Community,

ich bastle gerade mal wieder an einer Datenbank für meinen Webshop (Nähen von Wohnaccessoires und Dingen für Mutter & Kind aus Stoff).
Nun möchte ich in einem Formular eine Nummer für einen Stoff eingeben, und dabei im gleichen Formular das Foto des Stoffes anzeigen lassen. Die Tabelle mit Stoffnummer ist schon angelegt, das Feld für das jpeg ebenfalls. Die Bilder habe ich noch nicht eingefügt, da es etwa 250 Stoffe sind, und ich mir die Arbeit erst machen will, wenn ich weiß, ob es überhaupt funktioniert. Eigentlich hatte ich vor, die Fotos nur zu verknüpfen.

Bei einem simplen Formulartest habe ich festgestellt, dass das Foto nicht dargestellt wird, sondern man immer erst auf das icon klicken muss, damit sich das Foto öffnet. Ich möchte aber, dass das Foto direkt im Formular angezeigt wird, und nicht erst in einem Editor. Siehe auch Anhang.

Ich hoffe, Ihr könnt mir wieder einmal helfen!
Liebe Grüße sendet
Stephanie

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

vergiss erst mal das (vermutliche) OLE-Steuerelement für die Anzeige des Bildes.

Speichere NUR den kompletten Dateinamen der Bilder  als Text in einer, bzw. der enstpr. Tabelle ab.

Die Anzeige erfolgt dann über die (dynamische) Zuweisung des Dateinamens an ein BILD-Steuerelement.


(Die Aufgabe des gezeigten Forms ist mir nicht ganz so klar...)

srunge

Lieber DF6GL,

kurz zum Hintergrund und dem Sinn und Zweck des Formulars: meine Kunden können sich aus einer großen Auswahl an Stoffen Ihr eigenes Modell zusammenstellen. Das Formular wäre für mich eine Arbeitserleichterung, da ich bisher die gewünschten Stoffe heraussuche, aneinanderlege und mit dem gewünschten Webband fotografiere, dann per Mail verschicke. Mit dem Formular wäre diese Arbeit hinfällig. So könnte ich auch neue Modelle leichter designen, da ich nur die Nummern eingeben muss, und gleich sehen kann, ob die Zusammenstellung passt. Abzuklären wäre dann noch (in einem anderen Forum), ob ich mit Serif WebPlus x4 das ganze auch auf meiner Homepage darstellen kann und der Kunde direkt auf das Formular zugreifen kann. Aber das wäre wirklich Luxus.

Nun zu Deinem Lösungsvorschlag. Ich erstelle also ein neues Feld in meiner Tabelle TAB_Stoffe (Felddatentyp Text oder Memo?) und schreibe den Dateinamen inkl. Pfad rein? Wie geht der nächste Schritt (ich habe leider keine Programmierkenntnisse)?

Viele Grüße und bin schon gespannt,
Stephanie

database

Hallo, schönen Abend,

ZitatDie Anzeige erfolgt dann über die (dynamische) Zuweisung des Dateinamens an ein BILD-Steuerelement.

...und geregelt wird das jeweils z.B. im Ereignis 'Nach Aktualisierung' des Eingabe-Feldes.

Das von dir angesprochene neue Tabellenfeld möge 'Path' heißen und ist vom Datentyp Text.

Der Pfad wird dann aus der entsprechenden Tabelle anhand der eingegebenen Nummer (Schlüssel?) gelesen ....

Dim Pfad as String
Pfad = DLookup("Path","TAB_Stoffe","ID=" & Me!Eingabefeld)

Deinem Bild-Steuerelement weist du dann den Bildpfad zu:

Me![BildRahmen].Picture = Pfad


HTH

Peter

DF6GL

#4
Hallo,

ja den Hintergrund habe ich schon verstanden, nur das Form nicht, jedenfalls nicht so, wie es jetzt dargestellt ist (außer die Bilder anzuzeigen..)

ZitatAbzuklären wäre dann noch (in einem anderen Forum), ob ich mit Serif WebPlus x4 das ganze auch auf meiner Homepage darstellen kann und der Kunde direkt auf das Formular zugreifen kann.
Die Darstellung und Bedienung eines Access-Formulares mit aktiver Datenanbindung geht nicht auf/über  einer Website.

Erstelle ein normales Tabellenfeld mit Datentyp "Text" mit genügender Feldlänge in der Tabelle TAB_Stoffe UND TAB_Accessories  ("BildDateiName")

Erstell das Form so wie abgebildet mit 3 Textfeldern "txtStoff1ID", "txtAccID", "txtStoff2ID"  und 3 Bild-Steuerelementen ("BildStoff1", "BildBand", "BildStoff2")


Weiterhin brauchst Du 3 Ereignisprozeduren , die die Bilder (Dateinamen) aus den jeweiligen Tabellen aus dem angegebenen Datensatz auslesen und den Bild-St.-El. zuweisen:

Sub txtStoff1ID_Change()
Me!BildStoff1.Picture=nz(Dlookup("BildDateiName","TAB_Stoffe","StoffID = " & Me!txtStoff1ID),"")
End Sub

Sub txtAccID_Change()
Me!BildBand.Picture=nz(Dlookup("BildDateiName","TAB_Accessoires","AccID = " & Me!txtAccID),"")
End Sub

Sub txtStoff2ID_Change()
Me!BildStoff2.Picture=nz(Dlookup("BildDateiName","TAB_Stoffe","StoffID = " & Me!txtStoff1ID),"")
End Sub

Ich gehe davon aus dass "StoffID" und "AccID" die Primärschlüsselfelder (Datentyp Zahl, long, bzw. Autowert) der Tabellen sind und die Werte enthalten, die Du im Form in den Textfeldern eingibst.


Statt dem Change-Ereignis könntest Du auch das Afterupdate-Ereignis der Textfelder benutzen.

Stephanie

Lieber Franz,

vielen Dank für Deine ausführliche Anleitung!

Ich habe die Tabelle durch entsprechenden Felder ergänzt (kompletter Pfad wie z.B. H:\Trüffelchen und Co\Stoffe\008.jpg). Ebenso habe ich das Formular mit Textfeldern und Bild-Steuerelementen erstellt. (Heißt das Steuerelement ,,Bild", d.h. es geht gleich ein Fenster mit der Dateiauswahl auf, wenn man das Steuerelement einfügt?). Dabei habe ich keinen Steuerelementinhalt eingegeben (ungebundenes Feld).

Die  Ereignisprozeduren habe ich eingefügt, in dem ich auf den Formularentwurf mit der rechten Maustaste auf ,,Ereignis" geklickt habe und dann im Auswahlfeld auf ,,Code-Generator". Dort habe ich den kompletten Text einkopiert. Die Primärschlüsselfelder heißen in beiden Tabellen nur ,,ID". Ist das ein Problem? Ich habe im Ereignis die Textstücke entsprechend abgeändert.

Sub txtStoff1ID_Change()
Me!BildStoff1.Picture=nz(Dlookup("BildDateiName","TAB_Stoffe","ID = " & Me!txtStoff1ID),"")
End Sub

Sub txtAccID_Change()
Me!BildBand.Picture=nz(Dlookup("BildDateiName","TAB_Accessoires","ID = " & Me!txtAccID),"")
End Sub

Sub txtStoff2ID_Change()
Me!BildStoff2.Picture=nz(Dlookup("BildDateiName","TAB_Stoffe","ID = " & Me!txtStoff1ID),"")
End Sub

Immer wenn ich eine Zahl eingeben will, bekomme ich eine Fehlermeldung. Die lautet: "Fehler beim Kompilieren: Mehrdeutiger Name: Seitenfußbereich_Format". Was mache ich falsch?
Viele Grüße,
Stephanie

DF6GL

Hallo liebe Stephanie,

Die Frage nach einer Datei beim Einbau eines Bild-St.El. ist normal. Du kannst irgend eine Bilddatei angeben und danach gleich wieder löschen.


Die Meldung "Mehrdeutiger Name: Seitenfußbereich_Format". "   deutet auf eine zusätzliche Prozedur mit diesem Namen in einem BERICHT hin...

Wenn Du im VBA-Editor den Code kompilierst (Menüleiste/Debuggen/kompilieren),  sollte eine der beiden Prozeduren markiert worden sein.