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?
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.
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.
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.
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!
vielen Dank für deine unerschütterliche Hilfe. 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!
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?
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?
bitte für neue Fragen immer einen neuen Thread aufmachen!
Damit alle hier im Forum etwas davon haben
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
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.
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.