7 Antworten Neueste Antwort am Jun 28, 2017 4:51 AM von qsi

    Felder abgleichen

    qsi

      Hallo Leute,

      Ich bin ziemlich neu in Filemaker, dennoch eine Frage: Ich habe 2 Felder die ich miteinander verküpfen will und zwar so, dass ich im Feld 1 einen Wert habe und im Feld 2 nur die entsprechenden Werte zu sehen bekomme.

       

      Beispiel:

       

      Feld 1 hat die Auswahl: Homo, Turisops, Papio. Wenn ich in Feld 1 Homo auswähle sollte in Feld 2 nur die Auswahlliste mit den Namen sapiens, erectus, usw. erscheinen. Auswahl Feld 1 Papio dann in Feld 2 nur hamadryas, ursinus usw. die ich auswählen kann, je nur einen Namen also Auswahl Papio ursinus oder Papio hamadryas

       

      Ich habe versucht mit den Funktionen Falls oder Wenn, mittels Werteliste aber irgendwie funktioniert das Ganze nicht. Könnt Ihr mir aufzeigen wie ich das so hinkriege? Für Euch ist dies vielleicht trivial, für mich dummerweise nicht.

       

      Danke für Eure Hilfe

        • 1. Re: Felder abgleichen
          erolst

          Was du willst ist eine sogenannte Bedingte Werteliste.

           

          Am einfachsten (auch wenn du das vielleicht zuerst nicht glauben magst) und strukturiertesten (das schon eher) geht das so:

           

          Erstelle in deiner Datenbank zwei neue Tabellen: Genus und Species. (Die Tabelle, für die du alles machst, nenne ich BestehendeTabelle.)

           

          Achte darauf, in beiden Tabellen neben einem Feld "name" auch einen Primärschlüssel anzulegen. In Species muss du außerdem einen Fremdschlüssel für Genus anlegen. (Es gibt hierzu viele Konventionen; ich nenne den Primärschlüssel in allen Tabellen id, und einen Fremdschlüssel id_bezugstabelle.) Lies hierzu auch die Hilfe; Schlüssel sind ein elementares Konzept für Datenbanken.

           

          In deiner bestehenden Tabelle gibst du nötigenfalls den Feldern genus und species den gleichen Datentyp wie den Schlüsselfeldern in den neuen Tabellen, und benennst sie als Fremdschlüssel, also id_genus und id_species.

           

          Erstelle in beiden Tabellen Datensätze für die gewünschten Werte.

           

          Erstelle eine neue Werteliste Genus_d (für dynamic) mit den Optionen: "Aus/Von Feld", 1. Feld: Genus::id, 2. Feld: Genus::name, und markiere die Option "Nur Werte aus zweitem Feld anzeigen".

           

          Formatiere im neuen Layout für Species das Feld id_genus als Aufklappmenü mit der neuen Werteliste. Benutze es, um allen Datensätzen in Species den korrekten Wert für Genus zu geben.

           

          In Beziehungen erstellst du eine neue Beziehung

          BestehendeTabelle::id_species = Genus__fürBestehendeTabelle::id_species

           

          Erstelle eine neue Werteliste Species_c (für calculated, oder conditional) mit den Optionen: "Aus/Von Feld", 1. Feld: Genus__fürBestehendeTabelle::id, 2. Feld: Genus__fürBestehendeTabelle::name. Markiere die Option "Nur Werte aus zweitem Feld anzeigen", und "Nur Bezugswerte, beginnend mit" und wähle "BestehendeTabelle" aus. Markiere auch für diese Werteliste die Option "Nur Werte aus zweitem Feld anzeigen"

           

          Formatiere im Layout deiner bestehenden Tabelle ...

          ... das Feld id_genus als Aufklapmenü mit der Werteliste genus_d

          ... das Feld id_species als Aufklappmenü mit der Werteliste species_c.

           

          Wenn alle anderen Schritte korrekt ausgeführt wurde, siehst du (nach Auswahl eines Genus) in der Werteliste alle passenden Species.

           

          Das klingt nach viel Arbeit, hat aber den Vorteil, dass du bei Eingabe einer neuen Species nur den korrekten Genus auswählen musst (nachdem du ihn ggf. neu angelegt hast) – Fertig! Schon erscheint er in der bedingten Werteliste, ohne dass du irgendwelche Formeln anpassen musst. (Und wenn man den ganzen Prozess ein, zwei Mal gemacht und verstanden hat, geht das beim nächsten im Handumdrehen.)

           

          Außerdem hast du die Genus und Species, mit denen du arbeiten willst, so als Daten vorliegen (die man z. B. mühelos ausdrucken kann), und nicht in irgendeiner windigen Werteliste in der Datenbankstruktur vergraben ...

          • 2. Re: Felder abgleichen
            qsi

            Hallo erolst,

            Dann werde ich mich mal so an die Arbeit machen. Danke für die ausführliche Anleitung. Wenn das so klappt ist es geanu das was ich benötige. Melde mich wieder wenn's geklappt hat. Wenn nicht, dann natürlich auch.

            • 3. Re: Felder abgleichen
              qsi

              Also funktioniert nicht ganz so. Irgendwie habe ich da was verpasst. Die Id_Genus funktioniert, aber die ID_Species zeigt keine Liste an. Siehe Bilder, irgendeine Ahnung was ich da nicht konform gemacht habe?P1.JPGP2.JPGP3.JPGP4.JPGP5.JPG

              • 4. Re: Felder abgleichen
                qsi

                Ich denke das Problem liegt bei den Beziehungen. Du schreibst:

                 

                In Beziehungen erstellst du eine neue Beziehung

                BestehendeTabelle::id_species = Genus__fürBestehendeTabelle::id_species

                 

                Das kapiere ich nicht. Was bedeutet der :: zwischen BestehendeTabelle? Meint dies die BT_Id mit der Species Tabelle zu verknüpfen oder BT Id_Species mit der SpeciesTabellen Id_Species zu verknüpfen. Analog mit Genus?

                • 5. Re: Felder abgleichen
                  qsi

                  P6.JPG

                  • 6. Re: Felder abgleichen
                    erolst

                    Schau die mal die angehängte Beispieldatei an und vergleiche sie mit deiner.

                    • 7. Re: Felder abgleichen
                      qsi

                      Danke nochmals für deine Hilfe