Neuigkeiten:

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

Mobiles Hauptmenü

Im Unterformular ein neues Textfeld erstellen-Ziel zuweisen von Einzelbildern

Begonnen von derilzemer, Januar 27, 2016, 21:49:34

⏪ vorheriges - nächstes ⏩

derilzemer

Hallo,
das Unterformular dient dem erfassen von Quartetten und deren Einzelkarten. Aktuell ist das alles möglich, ich kann Flaggenbilder; Daten etc. zuweisen usw.
Ich will noch ein Feld im Detailbereich oder Formularkopf hinzufügen, welches einen Wert eingetragen bekommt, z.B. 647_1969, der dann für das Spiel und dessen Quartette fix ist. Es handelt sich dabei um eine Verzeichnisangabe, wo diese Bilder liegen. In diesem Unterformular sind die tblQuartette und tblQuKarten über frmErfassungUfoQuart und frmErfassungUfoQuartUfoKarten und deren Abfragen qryfrmErfassungUfoQuart und qryfrmErfassungUfoKarten involviert.
Ich dachte im 1. Schritt, mache erstelle ich in der tblQuartette ein Feld, QKVerzeichnis (siehe bild1). Diese habe ich dann entsprechend in der Abfrage mit einbezogen. Dann ein Textfeld,  Steuerelementinhalt wäre dann QKVerzeichnis. Soweit so gut. Wenn ich nun den Wert z.B. 647_1969 im Feld eintrage und ein Quartett und dessen Einzelkarten eintrage, passt das auch. Aber wenn ich dann ein weiteres Quartett mit Karten anlegen will, dann muss ich auch wieder die Vorgabe 647_1969 eintragen. Warum ist das so bzw. was muss ich tun, damit der Wert für alle 4 Quartette respektive 32 Karten Gültigkeit hat und ich den nicht 4x hinterlegen muss??

Vielen Dank für eure Hinweise, wo ich da den Fehler mache
Gruß Andreas
Grüße und Dank im voraus
Andreas

MaggieMay

Hallo Andreas,
ZitatIch will noch ein Feld im Detailbereich oder Formularkopf hinzufügen, welches einen Wert eingetragen bekommt, z.B. 647_1969, der dann für das Spiel und dessen Quartette fix ist.
dann gehört diese Information doch ganz eindeutig zum Spiel (und nicht zu den Quartetten!), und kann somit auch von dort für die Quartette übernommen werden.
Freundliche Grüße
MaggieMay

derilzemer

Hi,
ich ahnte es. Wenn ich ehrlich bin, habe ich mir gestern beim betrachten der Beziehung das auch gedacht. Aber dann meinte ich, ich habe da unten im UFO schon den Bilderpfad, das Quartett, die Einzelkarten, dann muss ich letztendlich das Verzeichnis angeben, und kann dann die Bilder gemäß den Angaben Karte 1a 1b 1c etc. so auch zuweisen. Aber okay, das ist eben nur so Anfängerhaft und zu kurz gedacht :(.
Du meinst also einen Ordnerverzeichnis in tblSpiele definieren. Dann lass mich mal schauen und berichten, wie weit ich komme.
Gruß Andreas
Grüße und Dank im voraus
Andreas

derilzemer

Hi Maggie,
Zitatdann gehört diese Information doch ganz eindeutig zum Spiel (und nicht zu den Quartetten!), und kann somit auch von dort für die Quartette übernommen werden.
Ich habe das jetzt mal so eingerichtet. Feld Verzeichnisname in tblSpiele. Daten wie 58822_st76 können nun hinterlegt werden. Jetzt habe ich ja schon eine Funktion, nach dessen "Stil" der Idee nach das ganze funktionieren sollte. Ich habe ja das Unterformular frmEfassungUfoBilder. Da gibt es die Möglichkeit ein Bild in einem Extraformular in Originalgröße darzustellen. Dafür ist das folgende Ereignis bei Doppelklick hinterlegt
Private Sub imgBild_DblClick(Cancel As Integer)
    DoCmd.OpenForm "frmDeckblatt", acNormal, , , , acDialog, Me.Parent.BilderPfad & Me.BildDateiName
End Sub

Hier habe ich aber wohl die einfache Version der Ausführung :). Ich habe den Pfad, den Verzeichnisnamen, aber wie bekomme ich die Einzelkarten mit den richtigen Bildern verknüpft? Da habe ich ja als statische Vorgabe nur die Reihenfolge der Quartette und deren Einzelkarten. Also Quartett 1 ist 1a, 1b, 1c und 1d, Quartett 2 ist 2a, 2b usw. Die Quartette sind ja nicht immer nummeriert, dann werden sie ja Alphabetisch sortiert. Dann ist eben ein Quartett das z.B. Anker heißt das Quartett 1. Ergo müsste ich im Formular frmErfassungUfoQuart z.B. das Feld Kartenbezeichnung oder KartenNr mit einem Ereignis Doppelklick belegen. Bildpfad ist ja vorgegeben durch den Verlag, aber wie verkette man jetzt  die dafür relevanten Daten wie Kartennummer z.B. 6c, sowie den Verzeichnisname aus der tblSpiele mit diesem Bildpfad, damit er dann auch die Datei 58822_st76_6c.png im Pfad W:\AccessDB\fxs im Verzeichnis 58822_st76 findet??

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

MaggieMay

Hallo Andreas,
ZitatIch habe den Pfad, den Verzeichnisnamen, aber wie bekomme ich die Einzelkarten mit den richtigen Bildern verknüpft?
wenn bspw. "1a" die Kartenbezeichnung ist und du die Bestandteile des Zugriffspfades kennst, sollte es doch kein Problem sein, daraus den vollständigen Zugriffspfad zum Kartenbild zu erzeugen.

Was genau ist dir dabei unklar?
Freundliche Grüße
MaggieMay

derilzemer

Hi
Zitat
wenn bspw. "1a" die Kartenbezeichnung ist und du die Bestandteile des Zugriffspfades kennst, sollte es doch kein Problem sein, daraus den vollständigen Zugriffspfad zum Kartenbild zu erzeugen.
Was genau ist dir dabei unklar?[/quote]

Eben wie das im VBA aussieht :(.
Private Sub KartenKZ_DblClick(Cancel As Integer)
    DoCmd.OpenForm "frmDeckblatt", acNormal, , , , acDialog, Me.Parent.BilderPfad & Me.Parent.Verzeichnisname & ?????
End Sub

Das müsste dann ja wahrscheinlich so aussehen, allerdings weiß ich jetzt nicht, wie ich das mit dem Verweis mit der Kartennummer hin bekomme, damit er auch weiss, ah okay er will jetzt 2b sehen :(. Das sieht ja im Formular so aus wie in bild1. Bild2 ist im Editmode, damit man auch die Realnamen der Felder sieht. bild_3 zeigt mal Varianten, die möglich sind bei den Kartenbezeichnungen.

Gruß Andreas


Grüße und Dank im voraus
Andreas

derilzemer

Ich vermute einfach mal, dass aufgrund der bevorstehenden Schließung des Forum auch die Teilnahme an den Beiträgen rapide schwindet. Ich muss es dann wohl woanders versuchen, Unterstützung für mein Anliegen zu finden. Schade...
Grüße und Dank im voraus
Andreas

MaggieMay

Hallo Andreas,

sorry, ich hatte das hier aus den Augen verloren, ehrlich gesagt weiß ich auch nicht wie ich dir bei der Lösung helfen könnte. Ich kann so etwas immer am besten erkennen, wenn ich die Tabellen, ihre Beziehungen und die Daten einsehen kann. All das kannst du ja eigentlich auch selbst am besten machen.

Bleiben wir mal beim Beispiel Kartenkennzeichen "1a": Steht das so im zugehörigen Datenfeld oder ist das ein zusammengesetzter Begriff, der in der Abfrage ermittelt wird? (weil "1" ja auch schon die Quartett-Kennung ist)
Steht das so im Datensatz, so brauchst du doch nur das Feld für den Pfad zu verwenden - oder eben den zusammengesetzten Begriff..

Beispiel:
Me.Parent.BilderPfad & Me.Parent.Verzeichnisname & Me!KartenKZ
dabei darauf achten, dass auch die "\" in ausreichender Anzahl enthalten sind.
Freundliche Grüße
MaggieMay

derilzemer

Werte Maggie,
ZitatIch kann so etwas immer am besten erkennen, wenn ich die Tabellen, ihre Beziehungen und die Daten einsehen kann. All das kannst du ja eigentlich auch selbst am besten machen.
Ich habe ja Probleme mit dem Thema, das ganze in VBA abzuhändeln. Da ist einfach Nullo angesagt :(. Du kannst dir sicher sein, wenn mir das von der Hand ging, dann wäre ich nicht hier im Forum damit aufgeschlagen!
ZitatBleiben wir mal beim Beispiel Kartenkennzeichen "1a": Steht das so im zugehörigen Datenfeld oder ist das ein zusammengesetzter Begriff, der in der Abfrage ermittelt wird? (weil "1" ja auch schon die Quartett-Kennung ist)
Steht das so im Datensatz, so brauchst du doch nur das Feld für den Pfad zu verwenden - oder eben den zusammengesetzten Begriff..
Das ist ein zusammen gesetzter Wert. KartenKZ ergibt sich aus dem Feld QuartettKz (Quartett Kennung) und meinem Eintrag im Feld KartenNr (Nr.). Dazu habe ich ja im Beitrag #5 ein Bild angehängt, wo ersichtlich ist, welche Konstellationen es maximal gibt. Das Problem dabei ist, dass eigentlich lstQuartettAuswahl die Haupt Vorgaben hat, unabhängig der 3 Konstellationen/Möglichkeiten.

Das Verzeichnis ist ja bekannt, z.B. II86_1961 (im bild_3 in Beitrag #5 das mittlere Beispiel). Das bzw. die Kartenbilder haben dann auch eine eindeutige Kennung,  sind dann mit II86_1961_1a oder II86_1961_3d benamst.
Ergo war jetzt mein Gedanke, in lstQuartettAuswahl ist z.B. Quartett IV ausgewählt. Wenn ich dann unter KartenKZ auf  IV/3 gehe, dann ist damit Karte 4c gemeint! Ob nun Symbole, oder Nummern in römisch oder was auch immer in der lstQuartettAuswahl steht, die Reihenfolge ist entscheidend ob es Quartett 4, 8 oder 1 ist. Die ist in der Liste immer gleich, von 1-15 oder A-O sortiert. Das ist erst einmal meine triviale Sicht der Sache :(.
Me.Parent.BilderPfad & Me.Parent.Verzeichnisname & Me!KartenKZ
Die Karten im Verzeichnis haben ja wie gesagt IMMER folgende Kennungen, Verzeichnisname_1a-1d, 2a-2d, 3a-3d usw. Im Code muss ja irgendwie diese Logik abgebildet sein, was abe aus meine rSicht so nicht ist, oder?
Wenn lstQuartettAuswahl Zeile4 (können bis zu 20 sein) und Feld KartenKZ 3 (das sind immer nur 1-4), dann die Karte Verzeichnisname_4c aufrufen.
Das ist zum einen schon schwer zu erklären und zum anderen bin ich damit nun erst einmal heillos überfordert :(. Ansätze wie das aussehen könnte sind in "kleineren" nicht so schweren Sachen für mich auch umsetzbar, aber hier nicht. Hey und klar ist mir auch, dass ich nicht erwarten kann, dass du das jetzt weisst oder machst. Wenn dem so ist, dann muss ich primär wissen, ob das generell möglich ist. Dann kann/muss ich mich darum kümmern, wer mir da die Lösung "basteln" kann. So jetzt habe ich mal wieder verwirrt wahrscheinlich.

Gruß Andreas
PS: War die Fastnacht hart :)? Ich bin kein Fastnachter, sehe immer nur die anderen morgens Leiden, auch mein Frauchen.
Grüße und Dank im voraus
Andreas

MaggieMay

Hallo Andreas,
ZitatWenn ich dann unter KartenKZ auf  IV/3 gehe, dann ist damit Karte 4c gemeint!
das war mir jetzt neu, also muss "umgerechnet" werden?! Oder hast du schon eine andere Idee dazu?

Aber:
Gibt es eine sachlich oder sonstwie begründete Erklärung dafür, warum die Bildnamen nicht direkt aus den Bezeichnungen generiert werden können? Denn was machst du bspw., wenn im Beispiel-1 zu "Anker", "Boje", "Flagge" nachträglich noch "Dingsbums" hinzukommt? Dann stimmt doch die alte Nummerierung nicht mehr.

Abgesehen davon, machbar wäre bspw. folgendes:
Me.Parent.Parent.BilderPfad & Me.Parent.Parent.SpielVerzeichnis & "_" & Me.Parent.lstQuartettAuswahl.ListIndex +1 & getSuffix(Me!KartenNr)
(Parent.Parent weil aus einem UUF heraus angestoßen)

wobei "getSuffix" erstmal eine fiktive Funktion ist, welche den zur lfd. Nummer zugehörigen Buchstaben liefern soll. Allerdings wäre es deutlich einfacher, wenn dieser Buchstabe direkt mit der Karte erfasst würde. Wenn du davon ausgehst, dass hier nur "/n" (für n = 1-4) oder "x" (für x = a-d) vorkommen kann, wäre das mAn eine ziemliche Einschränkung.

Soweit erstmal meine Gedanken hierzu. Am spannendsten dabei finde ich die Frage nach dem "Dingsbums". ;-)

Und nein, ich bin nicht Karnevals-geschädigt, der hat ja dieses Jahr eh nur eingeschränkt stattgefunden, ist aber auch sonst nicht so recht meine "Welt".
Freundliche Grüße
MaggieMay

derilzemer

Hi,
Dingsbums :).
Zitatdas war mir jetzt neu, also muss "umgerechnet" werden?! Oder hast du schon eine andere Idee dazu?
Nein, habe ich nicht und deswegen gleich zum Dingsbums.
ZitatAber:
Gibt es eine sachlich oder sonstwie begründete Erklärung dafür, warum die Bildnamen nicht direkt aus den Bezeichnungen generiert werden können? Denn was machst du bspw., wenn im Beispiel-1 zu "Anker", "Boje", "Flagge" nachträglich noch "Dingsbums" hinzukommt? Dann stimmt doch die alte Nummerierung nicht mehr.
Die Erklärung ist simpel. Zwischen 197-1970 gab es ne Menge Spiele von einem Verlag, da gab es schlicht weg keine Nummerierung! Es gab nur Symbole. Ergo hat man Quartette nach diesen Symbolen Alphabetisch geordnet und die Karten natürlich auch! Weiterhin ist es von der Konvention für ein Webportal später einfacher, man hat eine einheitliche Namenskonvention. Das ist erst mal der Haupt Hintergrund. In der Db Dokumentiere ich das so genau wie möglich, sprich 1:1 wenn machbar. Ich habe dann nur versuchsweise hinter so KartenKZ wie Anker noch ein /1 dazu gemacht, weil man es eventuell braucht für das Feature wo ich gerne hätte.
In der DemoDB welche ich dir hochgeladen habe, da kannst du es an den Bilder nachvollziehen wie die Aussehen.
Aber an deinem VBA Codeschnipsel den du angefügt hast sieht man ja jetzt schon Ansatzweise, dass einfach anders ist :).

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

MaggieMay

Hallo,
ZitatDie Erklärung ist simpel.
beantwortet aber nicht wirklich meine Frage. Es geht mir um die "Lücke" die entsteht, wenn ein Quartett (vorübergehend?) nur unvollständig erfasst wird.
ZitatErgo hat man Quartette nach diesen Symbolen Alphabetisch geordnet und die Karten natürlich auch!
soweit ok, aber was ist, wenn ein Spiel nicht vollständig ist, erfasst du dann trotzdem auch die fehlenden Quartette/Spielkarten?

Worauf ich hinaus will ist, dass man die Quartette nicht einfach fortlaufend durchnummerieren kann, wenn die Nummer nicht gespeichert wird und wenn die Quartette evtl. unvollständig sind. Die Zuordnung der Bilder muss (von vornherein) eindeutig sein - verstehst du nun was ich meine?

ZitatIch habe dann nur versuchsweise hinter so KartenKZ wie Anker noch ein /1 dazu gemacht
Heißt das, anstelle von "/1" könnte da auch einfach "a" (oder "1") stehen - so wie es im Endeffekt gebraucht wird?

Nachtrag:
Ich denke, du könntest auf den Eintrag des Flaggen-Pfades verzichten, wenn du eine feste Ordnerstruktur festlegst und voraussetzt, dass sie einzuhalten ist.

Bilderpfad: Zugriffspfad zur Anwendung oder auch frei wählbar
Beispiel: X:\Quartette\Bilder\

Flaggenpfad: separater Unterordner für die Landesflaggen
Beispiel: X:\Quartette\Bilder\Flaggen\

Bilder verlagsbezogen: automatisch generiert aus Bilderpfad + Verlagsbezeichnung
Beispiel: X:\Quartette\Bilder\verlag\

Bilder verlags- und spielebezogen: automatisch generiert aus Bilderpfad + Verlagsbezeichnung + Spielverzeichnis
Beispiel: X:\Quartette\Bilder\verlag\spiel\

Das heißt du brauchst nur einen dynamisch änderbaren Pfad, der Rest wird konstant (-> Flaggen) oder variabel (-> Verlag, Spiele-Verzeichnis) festgelegt.
Freundliche Grüße
MaggieMay

derilzemer

Hi,
Zitatbeantwortet aber nicht wirklich meine Frage. Es geht mir um die "Lücke" die entsteht, wenn ein Quartett (vorübergehend?) nur unvollständig erfasst wird.
Zitat. Ergo hat man Quartette nach diesen Symbolen Alphabetisch geordnet und die Karten natürlich auch!
soweit ok, aber was ist, wenn ein Spiel nicht vollständig ist, erfasst du dann trotzdem auch die fehlenden Quartette/Spielkarten?
Ich bin Sammler, kein Messie :). Es bleibt deshalb simpel, da ich keine unvollständigen Spiele habe. Kommt so ein Spiel rein, dann fliegt es in den Müll. Ergo, den Vielleicht Fall gibt es nicht :). Aber selbst wenn dem so wäre, dann könnte man eine Dummykarte/Platzhalter für die Fehlkarte pflegen. Das Bild dafür wäre dann ein spezielles Dummybild für alle Fehlkarten. Aber, ein Fall, den ich nicht habe bzw. nie haben werde.
ZitatHeißt das, anstelle von "/1" könnte da auch einfach "a" (oder "1") stehen - so wie es im Endeffekt gebraucht wird?
Wie gesagt, in der DB dokumentiere ich 1:1. Der Zusatz /1 war nur versuchsweise, wenn man das benötigen sollte. Ja, man könnte dann also auch /a oder 1 schreiben. Aber ich will in der DB so genau wie möglich dokumentieren. Wenn ich also mit den Originaldaten auskomme, also im Beispiel Anker ohne /1 dann lieber ohne /1 (Spinner... ähmmm Sammler, ich weiss...).
ZitatNachtrag:
Ich denke, du könntest auf den Eintrag des Flaggen-Pfades verzichten, wenn du eine feste Ordnerstruktur festlegst und voraussetzt, dass sie einzuhalten ist.
Das ist wohl wegen dem Kopierthema, weil du das anschneidest, oder?
Aktuell habe ich ja folgenden Pfadverlauf:
W:\AccessDB\(Verlage)\, W:\AccessDB\Verlag\II86_1961\ und W:\AccessDB\Flaggen\
Das bedeutet, aktuell habe ich es ja eigentlich so wie du es aufgelistet hast, nur ohne das Zusatzverzeichnis Bilder. Den Flaggenpfad hatten wir doch generiert, weil sie eben unabhängig vom Verlag sind  und ich die nicht "wild" im Rootverzeichnis liegen haben wollte. Verstehe ich gerade nicht bzw. sehe ich gerade deinen Wink mit dem Zaunpfahl nicht, wo man es einfacher gestalten könnte?

Gruß Andreas

PS: Danke dass du dich dem Thema wieder angenommen hast.


Grüße und Dank im voraus
Andreas

MaggieMay

Hi,

Zitatda ich keine unvollständigen Spiele habe
OK, umso besser, ich kam nur drauf wegen des diesbezüglichen Datenfeldes ("komplett") in der Spieletabelle.

Zitateigentlich so wie du es aufgelistet hast, nur ohne das Zusatzverzeichnis Bilder
Das war auch nicht als Zusatzverzeichnis (=eigenständiger Order mit dem Namen "Bilder") von mir gedacht.
So gesehen entspricht das Beispiel "X:\Quartette\Bilder\" deinem aktuellen Verzeichnis "W:\AccessDB\".
ZitatDas bedeutet, aktuell habe ich es ja eigentlich so wie du es aufgelistet hast
So ist es und das würde ich auch so beibehalten und dann brauchst du auch kein zweites Datenfeld für den Flaggenpfad, weil der einfach als Unterordner mit diesem Namen festgelegt wird. Ich bin der Meinung, dass man das in diesem Fall durchaus so machen kann.

ZitatWie gesagt, in der DB dokumentiere ich 1:1.
Gibt es denn eine "Rangordnung" bei den Quartettkarten, d.h. ist eine als die erste, zweite etc. gekennzeichnet bzw. zu identifizieren - und wenn ja, wie?
ZitatDer Zusatz /1 war nur versuchsweise, wenn man das benötigen sollte.
Aber es muss doch eine Grundlage dafür geben, welche Karte du mit /1 oder /2 etc. bezeichnest?
Und Ja, ich denke du benötigst das. Du brauchst eine manuell vergebene "Nr.", spätestens dann, wenn du die Bilder zuordnen willst, ohne jetzt für jede Karte wieder einen extra Bildnamen speichern zu müssen.

Freundliche Grüße
MaggieMay

derilzemer

Hi,
das Feld komplett habe ich in der Tat dafür gedacht, sofern ich die DB mal im Massenrollout zu HUnderttausend verkaufe, dann muss ich an die Messies denken  ;D. Aber da habe ich dir ja gesagt, wenn das eintrifft dann gibt es auch ein fettes Honorar nachträglich!
ZitatSo ist es und das würde ich auch so beibehalten und dann brauchst du auch kein zweites Datenfeld für den Flaggenpfad, weil der einfach als Unterordner mit diesem Namen festgelegt wird. Ich bin der Meinung, dass man das in diesem Fall durchaus so machen kann.
Heißt, du würdest das Datenfeld Flaggen aus dem UFo entfernen? Da kann ich dir jetzt nicht ganz folgen, wie ich das dann bewerkstelligen will wenn ich das anzeigen will wie in der DemoDB die ich dir hochgeladen habe  ???
ZitatGibt es denn eine "Rangordnung" bei den Quartettkarten, d.h. ist eine als die erste, zweite etc. gekennzeichnet bzw. zu identifizieren - und wenn ja, wie?
Ja klar, bei den Spielen, wo die Karten udn Quartette auch schon klar definiert sind ist es logisch, da sind die Karten ja mit 1a-1d, 2a-2d usw. gekennzeichnet. Ebenso bei den Spielen mit Römischen Zahlen. Bei Spielen mit Symbolen, da geht man nach Alphabet vor (siehe bild1 bzw. DemoDB Datensatz ID 495).
Anker =1
Boje = 2 usw.

Im Quartett Anker (Quartett 1) ist MS Carl Offerson aufgrund Alphabet Anordnung Karte a (1a), MS Johann Schulte Karte c (3c) usw. Das ist in dem Fall die Rangordnung. Anders kann ich das nicht lösen, außer eben alphabetisch. Aber funktioniert. Die Bilder sind dann auch so nummeriert im Verzeichnis. Zusätzlich habe ich dann im KartenKZ Feld diese /1 oder /3 dazu gemacht als Bestätigung. Aber die Sortierung im Steuerelementinhalt sollte das primär regeln.
So jetzt ab in die Falle. Ich freu mich, wenn du dran bleiben könntest, auch wenn ich nicht die Zeit deiner Aufwände abschätzen kann. Ich hab dir ja gesagt, du wirst es nicht umsonst machen!

Liebe Grüße und Gn8
Andreas
Grüße und Dank im voraus
Andreas