Januar 26, 2021, 11:50:54

Neuigkeiten:

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


Feld anhand des Primärschlüssels ermitteln

Begonnen von JumpDumb, November 26, 2020, 14:20:00

⏪ vorheriges - nächstes ⏩

JumpDumb

Hallo zusammen  ;D

ich möchte für ein Spiel eine Anwendung entwickeln, die verschiedene Punkte des Spiels grafisch
miteinander verknüpft und einfach darstellt. Wie ein interaktives Nutzerhandbuch sozusagen.

Grobes Beispiel: Ein Charakter X erlernt auf Stufe Y eine Attacke Z.
Die Datenmodellierung klappt soweit ganz gut.
Ab einer gewissen Stufe, können sich die Attacken aber weiterentwickeln.

Ich habe eine Tabelle tbl_skills erstellt, die alle im Spiel verfügbaren Fähigkeiten aufzeigt.

skill_id | skill_name | skill_lvl | skill_pre | skill_post | skill_family

In den Spalten skill_pre, skill_post & skill_family sind die entsprechenden
Werte aus skill_id hinterlegt. Die Beziehungen innerhalb dieser Tabelle habe
ich auch schon festgelegt.

Nun zu meiner Frage:
Ist es möglich, eine Spalte "skill_family_name" berechnen zu lassen,
die mir zusätzlich zur ID noch den dazugehörigen Wert aus skill_name anzeigt?

Anbei noch Bilder, die meinen Wunsch besser darstellen.

Sie dürfen in diesem Board keine Dateianhänge sehen.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Vielen Dank im Voraus.

Gruß JumpDumb  8)








MzKlMu

Hallo,
ZitatIst es möglich, eine Spalte "skill_family_name" berechnen zu lassen,
die mir zusätzlich zur ID noch den dazugehörigen Wert aus skill_name anzeigt?
Das geht völlig problemlos mit einer Abfrage in der die Tabelle skill_family mit aufgenommen wird.
Für die skill_family gibt es ja hoffentlich eine Tabelle.

Du sprichst dauern von Beziehungen, zeigst sie aber nicht.

Du solltet daher auch mal ein Bild des Beziehungsfensters hier zeigen, auf dem man alle Tabellen vollständig sieht.
Gruß
Klaus

JumpDumb

November 26, 2020, 15:16:29 #2 Letzte Bearbeitung: November 26, 2020, 15:29:25 von JumpDumb
Die skill_family ist nichts anderes als die erste Evolutions-Stufe des jeweiligen Skills,
und somit in dieser Tabelle schon vorhanden.

Sprich:
Die Fähigkeiten Blaze, Blazemore & Blazemost gehören zur Familie Blaze,
die ja bereits in dieser Tabelle (siehe Primärschlüssel 1) vorhanden ist.
Ich verweise also mit skill_family auf den Primärschlüssel der gleichen Tabelle,
und möchte im Feld skill_family_name dann nur noch den skill_name mit skill_id der von mir
in skill_family eingepflegt ist.

EDIT: Der Gedanke dahinter ist, dass der Nutzer im (noch nicht existenten) Formular dann per Klick
auf skill_family zu dem jeweiligen Basis-Skill geführt wird.

Nachfolgend der Beziehungsbaum (auch wenn ich nicht verstehe, wofür der bei Beziehungen innerhalb einer Tabelle problemrelevant sein sollte, bin aber für jede Hilfe dankbar ??? )

Sie dürfen in diesem Board keine Dateianhänge sehen.

Danke, Gruß Andi :)




MzKlMu

November 26, 2020, 15:28:59 #3 Letzte Bearbeitung: November 26, 2020, 15:37:32 von MzKlMu
Hallo,
wie willst Du von der Zahl auf den Klartext schließen ?
Ich sehe in den Bildern nicht, dass dieser Klartext  (skill_family_name) irgendwo gespeichert ist ?

Wie kommst Du von skill_name zu skill_family_name ?

auch wenn ich nicht verstehe, wofür der bei Beziehungen innerhalb einer Tabelle problemrelevantIch habe ja nicht geschrieben, dass das das Problem sein könnte (was es aber wahrscheinlich ist, wenn ich das jetzt so sehe).
Wenn man in einer fremden DB die Zusammenhänge erkennen soll, so geht das nur über das Beziehungsbild.

Hast Du Nachschlagefelder direkt in den Tabellen angelegt ?

PS:
Es ist für die spätere Programmierung hilfreich, wenn wenigstens ein Buchstabe in Objekt und Feldnamen groß geschrieben ist. Außerdem ist es vorteilhaft wenn an die Fremdschlüsselfelder ein _f angehängt wird, damit man PS und FS zweifelsfrei unterscheiden kann. Ein weitere Vorteil wäre dann auch , dass es keine doppelten Feldnamen innerhalt einer Datenbank gibt.
Gruß
Klaus

JumpDumb

Das war ja eben meine Frage:

Ich möchte das Feld skill_family_name, aus dem Feld skill_family berechnen lassen.

skill_id = 1 entspricht skill_name = blaze

Nun gebe ich die skill_id als skill_family an.
Per Abfrage oder Berechnung, soll mir Access nun in der darauffolgenden Spalte
den dazugehörigen skill_name zu dem Eintrag in skill_family anzeigen.
skill_name = skill_familyname nur eben definiert durch den Eintrag der ID in skill_family.
Ich glaube vom Prinzip her wie ein S-Verweis.

Nachschlagefelder habe ich keine.
Und deine Ratschläge werde ich mir zu Herzen nehmen, danke :)

Ich denke es scheitert an meiner Problembeschreibung.
Hoffe wir finden trotzdem eine Lösung.
Danke.

Gruß Andi

MzKlMu

Hallo,
eine Abfrage mit 2x der Tabelle "tbl_skill" sollte funktionieren.
Du musst in der Abfrage dem Namen skill_name den Tabellenanem (auch den virtuellen) voranstellen.
Also so:
tbl_Skill.Skill_Name
tbl_Skill_1.Skill_Name

Gruß
Klaus

JumpDumb

Zitat von: MzKlMu am November 26, 2020, 15:56:59Du musst in der Abfrage dem Namen skill_name den Tabellenanem (auch den virtuellen) voranstellen.
Also so:
tbl_Skill.Skill_Name
tbl_Skill_1.Skill_Name

Muss ich das in der Entwurfsansicht eingeben oder wo meinst du?
Die Spalten in der Entwurfsansicht lassen mich ja nur aus vorhandenen Tabellen wählen,
da hab ich nicht die Möglichkeit auf die virtuelle zu verweisen.

Kannst du das ein bisschen genauer erklären? :)
Danke.



MzKlMu

Hallo,
Zitat von: undefinedDie Spalten in der Entwurfsansicht lassen mich ja nur aus vorhandenen Tabellen wählen,
da hab ich nicht die Möglichkeit auf die virtuelle zu verweisen.
doch, das geht.
Siehe Bilder:

Bild 1 die Abfrage
Bild 2 das Ergebnis

In mein Beispiel habe ich natürlich nur ein Teil der Felder aufgenommen.
Gruß
Klaus

JumpDumb

DANKE!

Hab's geschnallt, ich musste innerhalb der Abfrage nochmal eine Beziehung erstellen,
um auf die virtuelle Tabelle zugreifen zu können. Jetzt funktioniert's!
Manchmal sieht man den Wald vor lauter Bäumen nicht.

Fall hiermit gelöst, danke für deine schnelle und zielführende Hilfe.

Gruß Andi