Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Bilder werden nur angezeigt, wenn erneut ein Bild gesetzt wird...

Begonnen von derilzemer, April 09, 2015, 01:01:54

⏪ vorheriges - nächstes ⏩

MaggieMay

Natürlich sollst du den Pfad nicht bei jedem Bild speichern, das wäre ja kontraproduktiv. Was ich meinte ist eine neue Tabelle, die nichts weiter als den Pfad enthält. Diese Tabelle bindest du in jede Abfrage ein, in der du Bilddateien brauchst. Oder du holst den Pfad beim Öffnen des Formulars mit Hilfe der DlookUp-Methode hinzu. Das ist - so oder so - eindeutig besser als den Pfad konstant in den Code zu schreiben!

Dazu ein Formular, so dass der Anwender notfalls den Pfad selbst ändern kann, denn in der EDV (so wie auch sonst im Leben) ist nichts für die Ewigkeit.
Freundliche Grüße
MaggieMay

derilzemer

Hi,
okay jetzt kommt der Andy wieder mit seiner Unwissenheit :(.
Tabelle habe ich mal erstellt, tblBildPfad, Felder BildPfadID (PK) und Pfad (Kurzer Text). Ein Datensatz W:\AccessDB\.
Nun redest du von 2 Methoden, entweder Abfrage oder aber mit der "DLookup Methode". Wenn ich nun das mit der Abfrage mal nehme, meine vorhandene Abfrage qryErfassungUfoKarten bearbeite, die Tabelle tblVerlag (wegen BilderOrdner) und tblBildPfad hinzufüge , dann steh ich wie ein Ochs vor dem Berg, weil ich nicht weiss, wie der Code dazu aussehen muss. Ich kann kein VBA, welchen ich ja in dem Fall für die Aktion Bei Klick oder Doppelklick zu machen habe :(. Die von dir erwähnten Methoden 1+2 bringen mich zwingend in die Lage, dass ich da nicht weiter weiss.
Traurig aber wahr
Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

Mit Screenshots vom Abfrageentwurf kann man nicht viel anfangen. Wenn es um Abfragen geht, zeige bitte den SQL-Code.

Nachdem was ich erkennen kann, brauchst du lediglich das Datenfeld "Pfad" aus der Tabelle "tblBildPfad" mit in die Datenfeldauswahl zu nehmen, so dass der Pfad bei jedem Datensatz automatisch hinzugefügt wird.
Freundliche Grüße
MaggieMay

derilzemer

#18
Hi Maggie,
der Code zur qryErfasssungUfoKarten ist

SELECT tblQuartette.QuartettID, tblQuartette.SpielID_F, tblQuartette.QuartettKz, tblQuartette.QuartettBezeichnung, tblQuKarten.QuKartenID, tblQuKarten.QuartettID_F, tblQuKarten.KartenNr, tblQuKarten.Kartenbezeichnung, tblQuKarten.ModellTyp, tblQuKarten.Druckdatum, tblBildPfad.Pfad, tblVerlag.BilderOrdner, [QuartettKz] & [KartenNr] AS KartenKZ
FROM tblBildPfad, tblVerlag INNER JOIN ((tblSerieVerlag INNER JOIN tblSpiele ON tblSerieVerlag.SerieVerlagID = tblSpiele.SerieVerlagID_F) INNER JOIN (tblQuartette INNER JOIN tblQuKarten ON tblQuartette.QuartettID = tblQuKarten.QuartettID_F) ON tblSpiele.SpielID = tblQuartette.SpielID_F) ON tblVerlag.VerlagID = tblSerieVerlag.VerlagID_F
ORDER BY tblQuartette.QuartettKz;

Laut deiner Aussage also kein weiterer Code von Nöten, lediglich das Bildsteuerelement? Wenn ich das Bildsteuerelement gesetzt habe, dann muss ich ja mit einem Ereignis (Klick o. Doppelklick) das Verzeichnis aufrufen können. Deswegen habe ich ja auch gedacht, man muss die tblVerlag mit einbinden, weil da ja die Verlagsspezifischen Bilder liegen. Die Beispiele im Internet zum Thema Bildsteuerelement gehen ja alle in Richtung, dass das Bildsteuerelement von einem Textfeld bedient wird. Wie du merkst, bin ich gerade mal wieder nicht auf voller Höhe.
Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

Hallo,

wo kommt denn diese Abfrage überhaupt zum Einsatz, das kann ich in meiner Version nicht finden.

Und was das betrifft:
Zitat von: derilzemer am April 13, 2015, 23:48:18Das ist aus meiner Sicht eben nicht "zentral" genug.
zentraler geht's nicht! :-)
Und ich hoffe, dich noch davon überzeugen zu können. Bring mich nur mal kurz auf den neuesten Stand, wie weit bist du inzwischen damit gekommen?
Freundliche Grüße
MaggieMay

derilzemer

Hi,
ZitatUnd ich hoffe, dich noch davon überzeugen zu können....
Ja ich weiss, da arbeitest du hart dran. Einzig meine Vorstellungskraft lässt mich noch an dem zweifeln, dass es "einfacher" sein wird. Das liegt aber eben an dem Verständnis des Themas an sich, nicht an dir :).
Die Abfrage qryErfasssungUfoKarten kommt im Formular frmErfassungUfoQuartettUfoKarten zum Einsatz. Da ist der aktuelle Stand, dass ich eben nur das Bildsteuerelement platziert habe. Steuerelementinhalt ist ungebunden. Ich hatte noch die Tabelle tblBildPfad mit den Feldern BildPfadID (PK) und Pfad (W:\AccessDB\Flaggen) angelegt. Und ab da verließen sie mich. Jetzt heißt es ja, dass beim Klick die tblBildPfad berücksichtigt werden muss.

SELECT tblQuartette.QuartettID, tblQuartette.SpielID_F, tblQuartette.QuartettKz, tblQuartette.QuartettBezeichnung, tblQuKarten.QuKartenID, tblQuKarten.QuartettID_F, tblQuKarten.KartenNr, tblQuKarten.Kartenbezeichnung, tblQuKarten.ModellTyp, tblQuKarten.Druckdatum, tblBildPfad.Pfad, [QuartettKz] & [KartenNr] AS KartenKZ
FROM tblBildPfad, tblSpiele INNER JOIN (tblQuartette INNER JOIN tblQuKarten ON tblQuartette.QuartettID = tblQuKarten.QuartettID_F) ON tblSpiele.SpielID = tblQuartette.SpielID_F
ORDER BY tblQuartette.QuartettKz;


Das ist der aktuelle Stand. Ich habe diese Woche Rufbereitschaft und bin etwas knapp was die Zeit angeht, aber bin dann immer mal wieder am checken der Beiträge, sorry.

Gruß Andreas


Grüße und Dank im voraus
Andreas

HB9876

Hi Andreas,
persoenlich finde ich den Vorschlag von MaggieMay sehr elegant.
Wenn sich dein Pfad zu den Bildern mal aendern sollte, must du nur den Eintrag in der Tabelle abaendern und nicht im Code basteln.
Ich finde das sehr Anwenderfreundlich geloest und man muss nicht die gefahr auf sich nehmen was am Code zu veraendern.

BTW:
ZitatAber Danke für deinen Invest und sorry wenn ich mich mal wieder extrem Begriffsstutzig oder wie auch immer angestellt habe. Das ist keine Absicht euch bzw. dich zu nerven.
Ich lese ja schon lange die Punkte deiner Datenbank mit (so lerne ich immer was dazu), finde ich deinen Wissensaufbau wirklich sehr gut.

Gruss
Jens
Mit jeder Antwort komme ich weiter und lerne.<br /><br />Danke!!!

derilzemer

Hi,
danke für dein Lob.
Ja, das mit dem Lerneffeklt stimmt schon und ich versteh es ja schon den Beweggrund vom Maggie. Bei mir ist dann aber immer der Hintergedanke, dass ich das bisherige umstellen muss und dann eben mit Problemen zu kämpfen habe bis das alles wieder läuft. Das ist auch das Hauptproblem an der Datenbankgeschichte, dass ich erst vor kurzem dazu gestoßen bin von Excel zu Access, keinerlei VBA Kenntnisse, noch nicht mal rudimentär. Ich bin jetzt zwar nicht unbedingt aufs Maul gefallen, aber man tut sich einfach schwer, weil man vieles wieder und wieder fragen muss und mit dem Googlemonster oft auch nicht ans Ziel kommt, weil es zu spezifisch ist. Aber so ist das eben, wenn man älter ist und dann anfängt sich mit solchen Sachen zu beschäftigen.

Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

Hallo Andreas,
Zitat von: derilzemer am April 21, 2015, 21:47:00Bei mir ist dann aber immer der Hintergedanke, dass ich das bisherige umstellen muss und dann eben mit Problemen zu kämpfen habe bis das alles wieder läuft.
das ist nachvollziehbar, die Erfahrung hat sicher jeder schon mal gemacht, dass eine Änderung unerwartete (bzw. unbedachte) Konsequenzen hatte.

Was den Bildpfad betrifft, so sollte das jedoch überschaubar sein. Du solltest wissen wo du diesen als Konstante einsetzt, zum einen in Abfragen und evtl. auch im VBA-Code, was leicht feststellbar wäre. Was die Abfragen betrifft, so ist es völlig unproblematisch, die Konstante durch Einbindung des Datenfeldes einer zusätzlichen Tabelle zu ersetzen. In den Formularen ändert sich dadurch ja nichts, sofern sie den Pfad der Datenquelle entnehmen können.

Hast du das inzwischen mal ausprobiert?

Es wäre sinnvoll, wenn du dir jeweils den (zumindest in Teilbereichen) funktionierenden aktuellen Stand des Programms sichern würdest, ehe du weitere Änderungen und Erweiterungen am Programm vornimmst.
Freundliche Grüße
MaggieMay

derilzemer

Hi,
ZitatEs wäre sinnvoll, wenn du dir jeweils den (zumindest in Teilbereichen) funktionierenden aktuellen Stand des Programms sichern würdest, ehe du weitere Änderungen und Erweiterungen am Programm vornimmst.
Das habe ich mir gleich von Anfang an angewöhnt. Jeder größere Step wurde Versioniert. Das hat mir der Klaus auch gleich als 1. eingetrichtert als er anfing mich zu unterstützen.

ZitatHast du das inzwischen mal ausprobiert?
Nein, hab dir ja geschrieben wie der Stand ist. Ich habe mal geschaut, wo der aktuelle Bildpfad überall hinterlegt ist.
Im Formular frmErfassung BilderPfad: "W:\AccessDB\" & [Bilderordner] & "\"
SELECT tblSerieVerlag.SerieVerlagID, tblSpiele.SpielID, tblSpiele.SpielNr, tblSpiele.SpTitel, tblSpiele.SerieVerlagID_F, tblSpiele.KategorieID_F, tblSpiele.Ausgabejahr, tblSpiele.Zustand, tblSpiele.Kartenzahl, tblSpiele.KartenFormatID_F, tblSpiele.Komplett, tblSpiele.Bestand, tblSpiele.Katalog, tblSpiele.SchachtelID_F, tblSpiele.VarianteID_F, tblSpiele.RSMotiveID_F, tblSpiele.Info, tblSpiele.Kaufdatum, tblSpiele.HaendlerID_F, tblSpiele.Preis, tblSpiele.Porto, tblSerieVerlag.VerlagID_F, tblSerien.Serie, tblVerlag.Verlag, "W:\AccessDB\" & [Bilderordner] & "\" AS BilderPfad, tblSpiele.LetzteAenderung
FROM tblVerlag INNER JOIN ((tblSerien INNER JOIN tblSerieVerlag ON tblSerien.SerieID = tblSerieVerlag.SerieID_F) INNER JOIN tblSpiele ON tblSerieVerlag.SerieVerlagID = tblSpiele.SerieVerlagID_F) ON tblVerlag.VerlagID = tblSerieVerlag.VerlagID_F
ORDER BY tblSpiele.SpielID;

Das zu ändern sollte in der Tat überschaubar sein. Aber, selbst wenn ich das eingebunden habe. Bisher hat der Pfad mich immer gleich in den richtigen Ordner "befördert", weil eben auch der BilderOrdner des jeweiligen Verlages gleich mit verabeitet wurde. Den muss ich also irgendwie mit da ein binden. Erst dann kann ich auch dran denken global umzustellen, oder? Der BilderOrdner ist in der tblVerlag hinterlegt. Das mit dem Pfad selbst kann ich mir vorstellen, dass ich eben die Tabelle tblBildPfad in der Abfrage qryErfassung mit einbeziehen muss, der Rest aber zwecks Bilderordner zu "bauen", ist zu Abstrakt für mich :(.

Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

#25
Hi,

die Verlagstabelle ist und bleibt doch in der Abfrage drin, es kann also praktisch alles bleiben wie es ist, die beiden rot markierten Stellen sind die einzigen Änderungen an dieser Abfrage:
SELECT tblSerieVerlag.SerieVerlagID, tblSpiele.SpielID, tblSpiele.SpielNr, tblSpiele.SpTitel, tblSpiele.SerieVerlagID_F, tblSpiele.KategorieID_F, tblSpiele.Ausgabejahr, tblSpiele.Zustand, tblSpiele.Kartenzahl, tblSpiele.KartenFormatID_F, tblSpiele.Komplett, tblSpiele.Bestand, tblSpiele.Katalog, tblSpiele.SchachtelID_F, tblSpiele.VarianteID_F, tblSpiele.RSMotiveID_F, tblSpiele.Info, tblSpiele.Kaufdatum, tblSpiele.HaendlerID_F, tblSpiele.Preis, tblSpiele.Porto, tblSerieVerlag.VerlagID_F, tblSerien.Serie,
tblVerlag.Verlag, [color=red]tblBildPfad.Pfad[/color] & [Bilderordner] & "\" AS BilderPfad, tblSpiele.LetzteAenderung
FROM[color=red] tblBildPfad, [/color]tblVerlag INNER JOIN ((tblSerien INNER JOIN tblSerieVerlag ON tblSerien.SerieID = tblSerieVerlag.SerieID_F) INNER JOIN tblSpiele ON tblSerieVerlag.SerieVerlagID = tblSpiele.SerieVerlagID_F) ON tblVerlag.VerlagID = tblSerieVerlag.VerlagID_F
ORDER BY tblSpiele.SpielID;

und für das Formular bleibt alles beim Alten.

Vielleicht kann dich das konkrete Beispiel schließlich doch noch überzeugen. :-)
Freundliche Grüße
MaggieMay

derilzemer

Hallo,
ist ja schon gut, ich versuch es jetzt mal in der TestDB :). Ich habe das abgeändert, dann schlägt der Debugger an. Anmeckern tut er im Form_frmErfassungUfoBilder die Fett und unterstrichene Zeile. Das ist also der bestehende Teil rechts in der DB wo die Bilder für die Einzelkarten gelistet bzw. eingegeben werden. Ich bin also noch nicht bei den Flaggenbildern der Einzelkarten :(.
Private Sub Form_Current()
    Me.lstBmWahl = Me.BildmotivID_F
    If Nz(Me.BildDateiName, "") = "" Then
        Me.imgBild.Picture = ""
    Else
        [u][b]Me.imgBild.Picture = Me.Parent.BilderPfad & Me.BildDateiName[/b][/u]
    End If
    Select Case Me.ogrFormat
        Case 1
            Me.imgBild.Width = 2540
            Me.imgBild.Height = 3878
        Case 2
            Me.imgBild.Width = 3878
            Me.imgBild.Height = 2540
    End Select
End Sub


Was hat sich jetzt geändert? Vorher musste er mit Parent den Pfad im Hauptformular suchen.
Jetzt muss er den Pfad ja in der Tabelle suchen, bedeutet die Anweisung muss doch anders sein, da bin ich noch dabei. Ich hab dann die Tabelle in qryfrmErfassungUfoBilder die tblBildPfad hinzugefügt, damit ich das Feld Pfad ansprechen kann. Aber nein Me.imgBild.Picture = Me.Pfad & Me.Bilderordner geht nicht. Ich habe dann auch mit Parent versucht, also Me.imgBild.Picture = Me.Parent.Pfad & Me.Bilderordner aber das war dann schon die nur ohne Plan Technik. Jo, abgehängt bin ich :(
Da wird noch so die eine oder andere  Frage dazu auftreten befürchte ich, was nicht heißt dass ich es als schlecht bewerte weil es schon ein Problem ist. Das Problem sitzt ja meist hinter Bildschirm ... PEBKAC
Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

#27
ZitatVorher musste er mit Parent den Pfad im Hauptformular suchen.
Jetzt muss er den Pfad ja in der Tabelle suchen
Du bist wirklich ein besonders schwerer Fall. ;-)

Der Pfad kommt doch nach wie vor aus der Abfrage oder hattest du ihn als Konstante irgendwo im Formular festgelegt?
Und die Abfrage füttert das Hauptformular.

Wenn du deine aktuelle DB-Version hochlädst, kann ich dir die Stellen zeigen, die angepasst werden müssen.
Freundliche Grüße
MaggieMay

derilzemer

Hi Maggie,
ZitatDu bist wirklich ein besonders schwerer Fall. ;-)
:( ......
Da ich sie hier nicht mehr posten kann weil größer als 300 KB, habe ich sie in einer PM zugeschickt, auch mit den Bildern.
Hab dir da auch deine Fragen beantwortet.
Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

#29
Hallo Andreas,

Code aus "frmErfassungUfoBilder":        Me.imgBild.Picture = Me.Pfad & Me.BildDateiName
        'Me.imgBild.Picture = Me.Parent.BilderPfad & Me.BildDateiName

Wieso hast du das geändert? Das war doch überhaupt nicht notwendig!
Der Stamm-Pfad kommt weiterhin aus dem HF.
Hatte ich nicht schon mehrfach erklärt, dass sich daran nichts ändert?

ZitatUnd als Konstante im Formular, wenn du das als Konstante bezeichnest.
Nein, was du da zeigtest war lediglich das Steuerelement mit dem Zugriffspfad im HF das durch die Abfrage gefüllt wurde.

ZitatDas gleiche Thema sollte ich dann ja auch als Problem im frmErfassungUfoQuartUfoKarten bekommen
Woher kommt denn da das Bild?? Wie hast du dir das gedacht mit den Flaggen-Bildern?
Freundliche Grüße
MaggieMay