Neuigkeiten:

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

Mobiles Hauptmenü

n:1 Beziehung, aber wie bekomme ich das Combi gebunden?

Begonnen von derilzemer, Dezember 31, 2016, 01:07:51

⏪ vorheriges - nächstes ⏩

derilzemer

Hallo,
bin nicht sicher, ob ich das in das Forum Tabellen/Abfragen hätte machen müssen. Wenn dem so ist, dann muss ich den Admin bitten es umzuziehen.
Ich habe eine tblSpiele, welche unter anderem das Feld VarianteID_F beinhaltet. Darüber hat tblVariante eine n:1 Beziehung. Nun habe ich eine weitere Tabelle erstellt, tblVariantenArt, welche ebenfalls eine n:1 Beziehung hat, jedoch nur zur tblVariante. Im Erfassungsformular (welches auf der tblSpiele aufbaut), habe ich nun das Combifeld der tblVariantenArt neben dem Combifeld Variante eingebaut (siehe Bild2) und den Select entsprechend definiert (SQL-Code unten). Das Feld ist jedoch ungebunden (siehe Bild3), da ich im Steuerelementinhalt nur die Felder von tblSpiele angeboten bekomme. tblVariantenArt hat ja keine direkte Verbindung zur tblSpiele, sondern eben nur eine n:1 Beziehung über die tblVariante. tblVariante selbst ist über einen Fremdkey an tblSpiele angebunden (siehe Bild1). Deshalb bekomme ich das Combifeld wohl nicht gebunden :-(. Kann mir anhand der Angaben jemand Unterstützung zukommen lassen?

SELECT tblVariantenArt.VariantenArtID, tblVariantenArt.VariantenArt
FROM tblVariantenArt;


mfG
Andreas
Grüße und Dank im voraus
Andreas

Beaker s.a.

Hallo,
ZitattblVariantenArt hat ja keine direkte Verbindung zur tblSpiele
Braucht sie ja auch nicht, wird ja über die Beziehung zu  tblVariante dargestellt.
Zitat. tblVariante selbst ist über einen Fremdkey an tblSpiele angebunden (siehe Bild1). Deshalb bekomme ich das Combifeld wohl nicht gebunden
Doch, genau an dieses Feld (VarianteID_F) musst du das Kombi binden.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

derilzemer

#2
Moin Ekkehard,
Zitat von: Beaker s.a. am Dezember 31, 2016, 01:29:10tblVariante selbst ist über einen Fremdkey an tblSpiele angebunden (siehe Bild1). Deshalb bekomme ich das Combifeld wohl nicht gebunden
Doch, genau an dieses Feld (VarianteID_F) musst du das Kombi binden.
Hmmm, das habe ich jetzt mal gemacht. Aber so wie das aussieht, habe ich ein anderes Problem und zwar mit meinem Verständnis :(. Ich habe in den Beziehungen noch einmal nachgeschaut, alle Beziehungen sind 1:n und nicht wie von mir beschrieben n:1. Die Tabelle tblVariante stellt über das Kombifeld lediglich die Werte A-H zur Auswahl (Bild1). In tblVariantenArt wollte ich nun auch über das Kombilfeld die ergänzenden Werte Deckblatt, Fehldruck, Spiel und Rückseite zur Auswahl anbieten (Bild2). Damit soll lediglich erreicht werden, wenn z.B. Spiel XYZ Variante B ist, ich es einer Variantenart zuzuweisen kann. Nachdem ich jetzt in tblVariantenArt als Steuerelementinhalt VarianteID_F eingestellt habe und ich z.B. im Formular Variante D auswähle, dann wählt er im Kombifeld Variantenart automatisch Rückseite aus. Also A=Deckblatt, B=Fehldruck, C=Spiel, D=Rückseite und E-H=bleibt leer. Das liegt ja wohl daran, dass ich als Steuerelemntinhalt eben VarianteID_F ausgewählt habe. Da macht er dann eine Feste Zuordung der Werte.
Ich wollte nun den Steuerelementinhalt abändern auf VariantenArtID. Dazu habe ich über den Ausdrucksgenerator folgendes hinterlegt =[tblVariantenArt]![VariantenArtID] Da bekomme ich dann beim Auswählen eines Wertes im Kombifeld die Meldung
ZitatDas Steuerelement kann nicht bearbeitet werden;es ist an den Ausdruck ' =[tblVariantenArt]![VariantenArtID]' gebunden.
Wo liegt der Fehler?

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

Beaker s.a.

Hallo Andreas,
ZitatNachdem ich jetzt in tblVariantenArt als Steuerelementinhalt VarianteID_F eingestellt habe
Sorry, hätte deutlicher schreiben müssen; - nicht das Arten-Kombi sondern das
Variantenkombi muss an den Fremdschlüssel gebunden werden.
Ansonsten bin ich durch den Rest deiner Ausführungen ziemlich verwirrt. Kannst
du vielleicht eine Kurzversion deiner DB mit ein paar Beispieldaten hochladen?
Mir ist die Beziehung zwischen Varianten und -Arten irgendwie nicht klar; - vermute
da einen Trugschluss.
Falls es mit dem Hochladen nicht klappt, beantworte doch bitte diese Fragen:
Wodurch wird denn eine Variante überhaupt bestimmt? Es kann ja dem
Datenmodell nach für ein Spiel auch nur eine Variante geben.
Oder gibt es verschiedene Varianten von Deckblatt, Rückseite usw.? Dann wären
IMO aber die Varianten von der -Art abhängig, und nicht umgekehrt, und es gäbe
mehrere Varianten eines Spiels (n:m).
Habe allerdings auch das Gefühl hier (mal wieder) was zu übersehen oder falsch zu
interpretieren.
Vielleicht löst sich der Knoten mit o.a. Beispiel-DB von dir.
gruss ekkehard

Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
wenn ich mich dann mal einmischen darf, ich kenne ja die DB glaube ich ziemlich genau, wenn ich mich recht erinnere.  :D  :P

Mir ist nicht ganz klar, wie das mit den Varianten zu verstehen ist.
Was ist die Variante und was die Variantenart (sind ja 2 Felder in 2 Tabellen), wie unterscheiden sich diese ?
Wenn das eine n:m Beziehung werden soll, ist die Beziehung falsch.

Erkläre daher erst mal die Zusammenhänge, ohne jetzt die DB direkt im Blick zu haben.
Gruß Klaus

Beaker s.a.

Hallo Klaus,
Zitatwenn ich mich dann mal einmischen darf
Aber gerne doch  :)
Trotz Kenntnis scheinst du aber die gleichen Verständnisprobleme zu haben wie ich.
Da bin ich ja schon mal froh, nicht ganz auf dem Holzweg zu sein.
Dann warten wir mal ab, was da vom TS noch so kommt.
gruss ekkehard


P.S.: Guten Rutsch an alle.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

derilzemer

Hallo Ekkehard und Klaus,
ich dachte es mir schon, dass meine Erklärungen nicht unbedingt Licht ins dunkel werfen werden. Mittlerweile bin ich unsicher, ob die tblVariantenArt nicht ebenso einen Fremdkey in der tblSpiele benötigt bzw. haben muss. Vielleicht noch als Hinweis zu Klaus, ich dachte man kann es lösen wie mit den Zusatzkarten. Da habe ich ein "ähnliches" Konstrukt. Ich versuche es mal genau zu beschreiben, da das hochladen ein wenig mehr Aufwand bedeuten würde.
Es gibt Spiele wie z.B. Nr. 647 von Ass. Das Spiel besteht aus 32 Spielkarten und dem Deckblatt, sowie eventuell Zusatzkarten wie Spielregeln und/oder Werbekarten etc. Nun kam es vor, dass der Verlag z.B. einen Fehldruck produzierte (z.B. Wertangaben innerhalb einer Spielkarte war astronomisch hoch etc.). Davon gab es sagen wir mal eine Marge von Spielen mit diesem Fehler, 500 Stück. Somit hatte man praktisch 2 Spielausführungen auf dem Markt, Variante A mit korrekten Angaben und Variante B mit den falschen Spielangaben. Also Variante A --> Varianten Art --> Korrekt und Variante B --> Fehldruck. Dann gab es z.B. Spiele mit Spielkartenrückseite in sagen wir mal der Farbe rot. Dann, warum auch immer haben sie eine Auflage mit den Kartenrückseiten mit der Farbe blau gemacht. Auch hier Variante A --> Varianten Art --> Korrekt und Variante B --> Varianten Art --> Rückseite. Das kannst du jetzt auch für Deckblätter oder Spieldate(n) fortführen. Ein Screenshot von tblVariantenart habe ich unten angehängt. Meint ihr auch, dass ich diese Tabelle mit einem FKey an tblSpiele anbinden ,muss, da e sich um spezifische Spieldaten handelt?

Gruß und guten Rutsch euch
Andreas

Grüße und Dank im voraus
Andreas

MzKlMu

Hallo,
hast jetzt viel geschrieben, aber meine Frage nicht beantwortet:
ZitatWas ist die Variante und was die Variantenart (sind ja 2 Felder in 2 Tabellen), wie unterscheiden sich diese ?
Die Variantenart ist steht ja in einer Tabelle (tblVariantenart), das heißt die Varianatenart selbst ist ja ein Text der sich wiederholt, sonst wird ja keine Tabelle benötigt. Was schreibst Du dann in das Feld Variante der Tabelle "tblVariante" ?
Z.B. Variantenart: Fehldruck, Variante: Deckblatt Farbe rot
Gruß Klaus

derilzemer

Hi,
nun ja, ich hatte ja im Thread schon erwähnt, dass es im Formular für die tblVariante auch ein Kombifeld gibt, was A-H zur Auswahl anbietet (siehe angehängtes Bild1 und Bild2). Ich schreibe also gar nichts, sondern wähle nur aus, so der Plan :). Hoffe die Frage ist damit beantwortet.

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

MzKlMu

Hallo,
hier liegt wieder eine klassische n:m Beziehung vor. Ein Spiel kann mehrere Variantenarten haben und eine Variantenart kann für mehrere Spiele zutreffen. Darstellung mit einem Unterformular. Beziehung siehe Bild.
Gruß Klaus

derilzemer

Hi,
danke für die schnelle Antwort. Ohje, das sieht ja auf den 1. Blick nicht wirklich nett aus. Wie wirkt sich das aus, wenn ich das Feld VarianteID_F entferne und ist das nur über ein UFO zu realisieren? Da habe ich dann das Problem mit dem "Platz" im Erfassungsformular. :(, da muss ich mal schauen wie und ob ich das so einbaue. Schei..

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

derilzemer

Zitat von: MzKlMu am Dezember 31, 2016, 16:30:59
Hallo,
hier liegt wieder eine klassische n:m Beziehung vor. Ein Spiel kann mehrere Variantenarten haben und eine Variantenart kann für mehrere Spiele zutreffen. Darstellung mit einem Unterformular. Beziehung siehe Bild.

Hi Klaus,
ich hab mir jetzt mal eine Kopie der aktuellen DB erstellt und angefangen hin und herzuschieben, damit ich das UFo eingebaut bekomme. Ich habe dann alles gemäß deinen Angaben mal ein/umgebaut. Aktuell sieht das mit den Beziehungen aus wie im Bild1. Im Formular sieht das aus wie in Bild2.
Die Abfragen, Code zum Feld Variante:
SELECT tblVariante.VarianteID, tblVariante.Variante
FROM tblVariante
ORDER BY tblVariante.VarianteID;


Code zum Feld Variantenart:
SELECT tblVariantenArt.VariantenArtID, tblVariantenArt.VariantenArt
FROM tblVariantenArt;


Scheint alles zu funktionieren wie es soll. Danke für die Hinweise und das Anleiten.

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

derilzemer

Hallo Klaus,

ich habe mich wohl doch zu früh gefreut. Ich habe jetzt gesehen, dass wenn ich eine Variante definiere es 2 Einträge in der DB gibt. Wenn ich die Variantenart auswähle, z.B. STD.-Ausgabe oder Deckblatt etc., dann übernimmt er das. Aber gleichzeitig legt er auch in der tblVariante einen neue Variante an und zwar ist die Nummer die ID des Datensatzes aus tblVariantenart, siehe Bild1-3. An den Abfragen (siehe#11) scheint es ja wohl nicht zu liegen, sonst könnte ich ja nichts auswählen. Liegt es an der Art der Beziehung? Eine Auffälligkeit ist, wenn ich nur die Variante auswähle ohne anschließend die Variantenart anzugeben, dann meckert er (siehe Bild4). Wo habe ich jetzt schon wieder den Fehler eingebaut?

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

MzKlMu

Hallo Andreas,
hast Du das Ufo über die Schlüsselfelder (SpielID > SpielID_F) auch verknüpft ?
Unabhängig davon irritiert mich die Verwendung von 2 Kombis. Für die Variantenart ist das klar, da steht eine Tabelle dahinter, aber für die Variante ist das unlogisch. Die Variante ist ja gemäß der Tabelle Freitext und kein Kandidat für eine Tabelle und demnach kann das eigentlich kein Kombi sein.

Daher noch mal die Frage, was ist der Unterschied zwischen Variante und Variantenart ? Das habe ich immer noch nicht richtig verstanden.
Gruß Klaus

derilzemer

Hallo Klaus,
danke der schnellen Nachfrage. Ich denke, die Erklärung in Beitrag #2 im Thread ist immer noch voll umfänglich und erklärt es richtig.
Vor dem Umbau, war das Feld Variante auch ein Kombi, es war noch nie ein Freitextfeld. In der Tabelle sind die Werte A-H hinterlegt. In Bild1-2 siehst du wie es vor dem "Umbau" war. Da habe ich dann lediglich ausgewählt ob es sich bei dem Spiel um Variante A, B, C ...... etc. handelte, sofern das bekannt war.
Aber daraus stellte sich dann immer öfter die Frage, um welche Variante handelt es sich denn überhaupt, Fehldruck, Deckblatt, Rückseite oder Spieldaten Variante?? In der Vergangenheit hatte ich mir dann immer eine Notiz im Freitextfeld Informationen gemacht. Dann habe ich eben gedacht, man müsste einfach ein weiteres Feld generieren, welches einen die Variantenart definieren lässt. Das ist eigentlich schon alles, was ich dazu noch sagen kann :(.

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