Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: trebuh am April 27, 2016, 12:01:03

Titel: Reflexive 1:n Beziehung
Beitrag von: trebuh am April 27, 2016, 12:01:03
Hallo,

bin dabei ein neues Projekt zu starten. Es handelt sich um eine Rinderdatenbank. Jetzt habe ich folgende Fragen:

1: Die Rinder werden mit Ohrmarken markiert. Die Nummer sieht z.B. so aus. DE 08 124 18793
    Diese Nummer ist im Prinzip ja eindeutig. Ist diese Nummer (in dem Fall Text) als Primärschlüssel zu empfehlen.
    (Ich tendiere eher für ein extra ID Feld als Zahl)

2: Wird eine Geburt gemeldet, muss die Nummer des Muttertieres mit angegeben werden. Dieses Muttertier ist ja auch als Tier im Bestand. Das müsste dann ja eine typische
     Reflexive 1:n-Beziehung sein, oder?

3: Ich kann mir meinen Bestand aus einer Onlinedatenbank als Excel.csv-Datei herunterladen.
    Nun habe ich in der Bestandstabelle (Access) in einem Feld die Ohrmarkennummer des Tieres und in einem Feld die   
    Ohrmarkennummer des Muttertieres.

    Wenn ich nun anstelle der Ohrmarkennummer des Muttertieres (Welche auch als Tier im Bestand ist) die ID des   
    Datensatzes (als Fremdschlüssel) haben will, wie muss ich das anstellen daß die Ohrmarkennummer des Muttertieres
    durch die ID des Datensatzes welche das Muttertier als gemeldetes Tier hat, ersetzt wird?
    Dachte da an eine Aktualisierungsabfrage.
    Geht das? wenn ja wie muss ich da vorgehen?

Hoffe, das ich mich einigermaßen verständlich ausgedrückt habe.

Gruß Hubert
Titel: Re: Reflexive 1:n Beziehung
Beitrag von: DF6GL am April 27, 2016, 15:16:56
Hallo,


1)  ID-Feld als Autowert ist das Richtige.....

2) Ja ... in tblTiere gibt es ein Id-Feld (siehe 1) und ein Feld "Tr_ParentID" , das den ID-Wert des Muttertieres enthält.

3) Ja, das muss so gehen.... Verknüpfe zunächst die Excel-Tabellen. Anschließend sind durch (über die Ohrmarkennummern) verknüpfende Insert-Abfragen und Update-Abfragen  die Zuordnungen herzustellen.



Bei der Ohrmarkennummer würde ich beim Importieren (bzw. Aktualisieren) die Blanks aus der Nummer eliminieren, so dass in der DB keine Leerzeichen mehr in Feld Tr_OMN vorhanden sind.