Statt IDs den Text einer anderen Spalte

Guten Morgen!

Folgendes Problem:

Entity [Player] hat (Name) und (ID) als Attribute.
Entity [Guild] hat (Name) und (ID) als Attribute.

[Player] N — (ist Mitglied) — 1 [Guild]

Ich habe die Tabelle [Guild] nur mit den oben angegebenen Attributen erstellt. Tabelle [Player] wird zusätzlich mit einer Spalte für (Guild) erstellt. Die Datenherkunft für diese Spalte ist natürlich [Guild]. Nun möchte ich jedoch statt der ID aus Guild den Namen der Guild haben, da ich die IDs nicht auswendig lernen möchte.
Die IDs sind in [Player] und auch in [Guild] die Primärschlüssel. Nur darüber lässt sich ein Datensatz eindeutig identifizieren. Problem, die Namen können sich also wiederholen. Wie kann ich mit einem Listenfeld trotzdem sicherstellen, dass ich einem Player die richtige Guild (ID) zuordne, auch wenn ich nicht die ID sondern den Namen verwenden möchte?

Ist das überhaupt zu realisieren?

Vielen Dank für die Antworten.

MfG,
Rogge

Guten Morgen Rogge,

erstelle eine entsprechende Abfrage für dein Listenfeld.

Die Abfrage solle dann zwei Felder haben, die ID und die INFO
Das ist die Datenbasis für das Listenfeld.
Dort eintragen, dass es 2 Felder sind!!
Dort eintragen, dass Spalte 1 gebunden ist!! (die ID)

Nun der „Trick“:
Die Länge der Spalten auf 0cm;10cm setzen.
D.h. die erste Spalte wird nicht angezeigt, ist aber vorhanden und wird auch genutzt. Angezeigt wird nur die Info/der Name etc., so wie du es haben wolltest.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo.

Wie kann ich mit einem Listenfeld trotzdem
sicherstellen, dass ich einem Player die richtige Guild (ID)
zuordne, auch wenn ich nicht die ID sondern den Namen
verwenden möchte?

Ein Listen- oder Kombofeld basiert (meist) auf einer SQL-Anweisung. Da steht jetzt so etwas drin wie SELECT Guild.[ID] FROM Guild …

Schröbest Du (im Formularentwurf) SELECT Guild.[ID], Guild.[Name] FROM Guild … und stöllest die Spaltenbreiten (Eigenschaft des Feldes) auf „0 cm; 3 cm“, würdest Du feststellen, dass nur die Namensspalte angeziegen würde.

Gruß Eillicht zu Vensre

Danke sehr, das funktioniert wunderbar. Und wie kann ich jetzt eine Beziehung zwischen den beiden herstellen? Also, dass vor den einzelnen (Guild)-Datensätzen in der Tabelle [Guild] wieder dieses kleine Plus erscheint und man auf einen Blick erkennen kann, welcher Player in welcher Guild ist? Das bekomme ich bis jetzt nicht hin, da ich ja in der Tabelle [Player] der Name der Guild und nicht die ID zu sehen ist. Ich kann also von [Player].[Guild] nicht zu [Guild].[ID] verknüpfen.

Hallo Rogge,

Danke sehr, das funktioniert wunderbar.

das freut mich :smile:

Und wie kann ich jetzt eine Beziehung zwischen den beiden herstellen?

über Beziehungen

Also, dass vor den einzelnen (Guild)-Datensätzen in der Tabelle :[Guild] wieder dieses kleine Plus erscheint und man auf einen Blick
erkennen kann, welcher Player in welcher Guild ist?

wenn du etwas „sehen“ willst, benutze Formulare
wenn du etwas drucken willst, benutze Berichte
wenn du etwas Auswwerten etc. willst, benutze Abfragen
wenn du nur etwas speichern willst, benutze die Tabellen

Das bekomme ich bis jetzt nicht hin, da ich ja in der Tabelle
[Player] der Name der Guild und nicht die ID zu sehen ist. Ich
kann also von [Player].[Guild] nicht zu [Guild].[ID]
verknüpfen.

  • öffne dein Access
  • betrachte die Symbolleiste
  • fahre langsam mit der Maus über alle Symbole
  • wenn du Beziehungen gefunden hast, klicke das Symbol an
  • Füge deine beiden Tabellen hinzu
  • ziehe nun von der Guild-Tabelle das Feld ID auf die Tabelle Player auf das Feld Guild_ID
  • aktiviere IMMER referienzielle Integrität mit Lösch- und Änderungsweitergabe!
  • schließe das/die Fenster
  • fertig

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

vielen Dank für deine unerschütterliche Hilfe. :smiley: Jetzt habe ich es alles hinbekommen. Die Daten in den Formularen wollte ich mir auch geordnet anzeigen lassen… dazu habe ich mal kurzerhand selbst meinen Grips angestrengt und es ist dabei sowas rum gekommen: „SELECT [Player].[ID], [Player].[Name] FROM Player ORDER BY [Player].[Name];“ Funktioniert tadellos! :smile:

Nochmals vielen Dank!

Doch habe ich noch eine weitere Frage:
Ich habe die drei Tabellen in ein neues Formular aufgenommen. Wenn ich dort einen neuen Player oder eine neue Guild eintrage, wird das auch alles in die Tabellen übernommen, jedoch muss ich das Formular zunächst einmal schließen und dann wieder öffnen, bevor ich neue Datensätze in den Kombis auswählen kann. Wie lässt sich sowas automatisch aktualisieren?

Liebe Grüße,
Rogge
(der ewig Lernende)

Hallo,

hab noch eine Zusatzfrage: In dem Formular sollen die Daten nach (Location) geordnet sein. Wie erreiche ich das.

Und noch eine Frage: (Location) ist im Format so: C00:00:00:00. Das „C“ muss ganz vorne stehen, dann folgen 8 Zahlenpaare, durch „:“ getrennt. Ich habe dafür schon eine EingabeMaske erstellt, dass ich eben die Doppelpunkte nicht mit eingeben muss. Und wie kann ich das machen, dass das „C“ auch schon automatisch eingetragen wird?

Vielen Dank.

)

Hallo,

bitte für neue Fragen immer einen neuen Thread aufmachen!
Damit alle hier im Forum etwas davon haben :smile:

hab noch eine Zusatzfrage: In dem Formular sollen die Daten
nach (Location) geordnet sein. Wie erreiche ich das.

  • öffne dein Formular im Entwurfs-Modus
  • Doppelklicke auf das kleine schwarze Kästchen oben links wo die Lineale zusammentreffen. Dann bist du gleich bei den Eigenschaften vom Formular.
  • Reiter (TAB) = Daten
  • bei Datenherkunft am Ende auf die drei Punkte klicken […]
  • du erstellst nun ein Abfrage, wo du in der ersten Spalte dein Feld Location einträgst.
  • bei Sortierung nun Aufwärts wählen
  • das Abfragefenster nun schließen (nicht speichern)
  • das Formular im Ansichtmodus anzeigen lassen
  • fertig

Und noch eine Frage: (Location) ist im Format so:
C00:00:00:00. Das „C“ muss ganz vorne stehen, dann folgen 8
Zahlenpaare, durch „:“ getrennt. Ich habe dafür schon eine
EingabeMaske erstellt, dass ich eben die Doppelpunkte nicht
mit eingeben muss. Und wie kann ich das machen, dass das „C“
auch schon automatisch eingetragen wird?

trage das C einfach mit in die Eingabemaske ein. Und zwas so:
\C99:99:99

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Rogge,

Ich habe die drei Tabellen in ein neues Formular aufgenommen.
Wenn ich dort einen neuen Player oder eine neue Guild
eintrage, wird das auch alles in die Tabellen übernommen,
jedoch muss ich das Formular zunächst einmal schließen und
dann wieder öffnen, bevor ich neue Datensätze in den Kombis
auswählen kann. Wie lässt sich sowas automatisch
aktualisieren?

ja, bei jedem Feld kann man ein Aktualisieren (Requery) veranlassen.

me.meinfeld.requery

das sollte dann bei Fokusverlust eines deiner Eingabefelder erfolgen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Guten Morgen. :smile:

bitte für neue Fragen immer einen neuen Thread aufmachen!
Damit alle hier im Forum etwas davon haben :smile:

Ok, beim nächsten Mal. Hier fand ich das besser, da es ja alles zusammengehört.

  • öffne dein Formular im Entwurfs-Modus
  • bei Sortierung nun Aufwärts wählen

Funktioniert! Vielen Dank. :smile:

trage das C einfach mit in die Eingabemaske ein. Und zwas so:
\C99:99:99

Das funktioniert leider nicht. :frowning: Da muss dann noch irgendwas anderes her. Ich habs schon mit "C"99:99:99:99 versucht, haut aber auch nicht richtig hin.

MfG,
Rogge

Das funktioniert leider nicht. :frowning: Da muss dann noch irgendwas
anderes her. Ich habs schon mit "C"99:99:99:99 versucht, haut
aber auch nicht richtig hin.

Erm… die Änderung bei der Tabelle werden leider nicht beim Formular wirksam. Da habe ich jetzt das Eingabeformat entsprechend geändert. Jetzt geht’s. :smile:

ja, bei jedem Feld kann man ein Aktualisieren (Requery)
veranlassen.

me.meinfeld.requery

das sollte dann bei Fokusverlust eines deiner Eingabefelder
erfolgen.

Soweit hab ich das verstanden. Aber wie setze ich das um?
Wenn ich beispielsweise einen neuen Player eingebe, bekommt der auch eine ID. Muss ich dann im Formular beim Feld „Player_ID“ bei Focusverlust „me.[Player].[ID].requery“ eintragen? Das kann so sicher nicht hinhauen.
Dabei bräuchte ich leider noch ein bisschen mehr Hilfe. :confused:

Liebe Grüße,
Rogge

Soweit hab ich das verstanden. Aber wie setze ich das um?

mit einem Hauptformular und Ufos (Unterformulare)

Wenn ich beispielsweise einen neuen Player eingebe, bekommt
der auch eine ID.

Du hast ein Hauptformular, in dem du deine Guilds verwaltest.

Auf diesem Hauptformular hast du ein UFO in dem du die Teilnehmer verwaltest. Beide Formulare sind über die Guild_Id verknüpft.

So wird einem Player immer die richtige (auf dem Hauptformular angezeigte ID) zugewiesen.

Daten verwaltet man NICHT in Tabellen, dort werden die Daten nur gespeichert die du im Formular bearbeitest!

Wenn du ne Tabellenansicht benötigst, regele es im Formaular über die Ansicht.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)