Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: kuhns am Juli 22, 2011, 19:19:00

Titel: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: kuhns am Juli 22, 2011, 19:19:00
Hallo Leute,

folgendes: Ich habe eine Tabelle mit Spielen (Tabelle 1), ein Feld davon beinhaltet die Kategorie (Typ Zahl) des Spiels. Dazu habe ich eine Tabelle Kategorien (Tabelle 2) angelegt mit Primärschlüssel und den verschiedenen Kategorien (Typ Text). Verknüpfe ich Kategorie in Tabelle 1 mit dem Primärschlüssel aus Tabelle 2 bekomme ich beim Formular nur die verschiedenen IDs angezeigt.

Nun habe ich das Feld Kategorie in Tabelle in Texttyp umgewandelt, beim Formular bei Datensatzherkunft per Assistent ein "SELECT tblkategorien.Kategorie FROM tblkategorien; " eingetragen und ich bekomme im Formular die Kategorien in Textform angezeigt. Soweit so gut. Allerdings geht das nur, solange ich bei den Beziehungen zwischen Tabelle 1 und Tabelle 2 (Kategorie --> Kategorie-ID) auf das Häkchen für referentielle Integrität verzichte.

Ich hoffe das war gut genug beschrieben. Was ich mich frage: Ist das in Ordnung so oder geht das gar nicht? Und falls nicht, wie löse ich das dann?

Vielen Dank
Titel: Re: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: MzKlMu am Juli 22, 2011, 19:27:48
Hallo,
nein, das ist nicht in Ordnung, unter keinen Umständen, das wäre ein wirklich grober Fehler.
Verknüpfung über die Schlüsselfelder des Typs Zahl, mit RI.
ZitatVerknüpfe ich Kategorie in Tabelle 1 mit dem Primärschlüssel aus Tabelle 2 bekomme ich beim Formular nur die verschiedenen IDs angezeigt.
Erstelle eine Abfrage mit beiden Tabellen (mit der Beziehung) für das Formular, dann hast Du auch das Klartextfeld ohne irgendwelchen Code direkt zur Anzeige.
So wie Du das jetzt gemacht hast, ist das Krampf, sorry. ;D
Titel: Re: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: kuhns am Juli 22, 2011, 21:11:11
Danke, das hab ich mir gedacht.

Ich gehe jetzt so vor:
Tabelle 1 Kategorie Typ Zahl
Beziehung Tabelle 1 Kategorie --> Tabelle 2 Kategorie ID (mit referentieller Integrität)
Formular: Feld Kategorie --> Ändern zu: Kombinationsfeld
Datensatzherkunft: Abfrage erstellen zu Tabelle 2, dort wähle ich das Feld Kategorie (Typ Text)

und es klappt! Danke.
Titel: Re: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: kuhns am Juli 22, 2011, 22:54:03
 ???
Zu früh gefreut. Wenn ich im dropdown jetzt als Kategorie z.B. Kooperationsspiele auswähle, kommt die Meldung: "Sie haben einen Wert eingegeben, der für dieses Feld nicht gültig ist."

Ich hänge jetzt mal zwei Screenshots an:

(http://www.fotos-hochladen.net/uploads/unbenannt2qutsfp67wn.gif)
(http://www.fotos-hochladen.net/uploads/unbenannt43dwf1u5hxb.gif)
Titel: Re: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: MzKlMu am Juli 22, 2011, 23:34:03
Hallo,
überlege mal logisch, das kann doch nicht gehen, Du versuchst ja Text in einem Zahlenfeld zu speichern, wie soll das funktionieren?
Das Feld Kategorie1 muss ein Zahlenfeld sein. Die Datenherkunft für das Kombi muss 2 Spalten haben, die Zahl und den Text (in dieser Reihenfolge). Das Kombi wird an das Feld Kategorie1 gebunden.
Steuerelementinhalt: Kategorie1
Gebundene Spalte: 1
Spaltenzahl: 2
Spaltenbreiten: 0cm;5cm

Dadurch sieht man den Text, aber die Zahl wird gespeichert.
Titel: Re: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: kuhns am Juli 23, 2011, 09:33:18
Mir war es selbst schleierhaft, aber irgendwie musste es doch gehen. Mit ner id als Auswahl kann ja keiner was anfangen. Danke für den Tipp, es ist also ein Trick. Sorry für meine absolute Unbelecktheit in Access. Ich dachte, es wär leichter, aber Datenbanken sind anscheinend schon was Anspruchsvolleres. Ich knie mich jetzt mal tiefer in meine Bücher. Aber vielen Dank für deine Geduld.
Titel: Re: Verzicht auf referentielle Integrität hier in Ordnung?
Beitrag von: database am Juli 23, 2011, 10:00:43
Hallo,

Zitates ist also ein Trick

nein, so würde ich das nicht sehen, es ist KEIN Trick - das ist Standard!  ;) ;D
Alternativ KÖNNTEST du ja -

Spaltenbreiten: 1cm;5cm

verwenden - dann siehst du beide Inhalte - wobei dennoch die ID aus der ersten Spalte ins Fremdschlüsselfeld der Tabelle übertragen wird.

Zitataber Datenbanken sind anscheinend schon was Anspruchsvolleres
...womit du zweifelsfrei Recht hast!  :D
Gratuliere zu deinem Entschluss dich tiefer einzulesen!