Office: (Office 2010) Liste im Kombifeld durch Tabellenbeziehungen einschränken?

Helfe beim Thema Liste im Kombifeld durch Tabellenbeziehungen einschränken? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Guten Abend, ich bin beim Erstellen eines kleineren Datenbank-Projekts auf ein Problem gestoßen, das ich durch Eigenrecherche leider nicht gelöst... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von dermobb, 12. Mai 2020.

  1. Liste im Kombifeld durch Tabellenbeziehungen einschränken?


    Guten Abend,

    ich bin beim Erstellen eines kleineren Datenbank-Projekts auf ein Problem gestoßen, das ich durch Eigenrecherche leider nicht gelöst bekomme. Es geht um eine Datenbank zur Organisation und Dokumentation der Gesundheits-Vorsorge in einem kleineren Unternehmen.

    Verschiedene Mitarbeiter können aufgrund ihrer Tätigkeiten bzw. Gefährdungen diverse Vorsorgeuntersuchungen im Formular frm_Mitarbeiter zugeteilt / angeboten bekommen. Dies ist durch eine n:m Beziehung der Tabellen tbl_Mitarbeiter und tbl_Untersuchungen hoffentlich richtig beschrieben. In einem weiteren Formular frm_Termine können Termine für die Mitarbeiter angelegt werden, welche in der Tabelle tbl_Termine gespeichert werden.

    Hier würde ich es gern so haben, dass zuerst der Mitarbeiter über das Kombifeld ausgewählt wird. Das funktioniert bereits wie ich es mir vorstelle. Als nächstes soll bestimmt werden, welche Untersuchung an dem Termin durchgeführt wird. Das Kombifeld soll nur die Untersuchungen anzeigen, die für diesen Mitarbeiter in Frage kommen (Info aus der Zuordnungstabelle ztbl_MitarbeiterUntersuchungen). Das bekomme ich aber nicht hin, es wird immer die vollständige Liste angezeigt. Hier bitte ich euch freundlich um Rat und Hinweise.

    Da ich bisher über wenig Erfahrung in Access verfüge, möchte ich euch auch gern darum bitten, mein gewähltes Datenmodell zu überprüfen. Es gibt da nämlich eine weitere Sache, die mich unsicher macht. Über den Primärschlüssel Personalnummer steht die Tabelle tbl_Mitarbeiter in einer Beziehung zu jeweils zwei anderen Tabellen. Wenn ich die Tabelle tbl_Mitarbeiter in der Datenblattansicht öffne, werden über das kleine "+ Symbol" Beziehungen "suggeriert". Wenn ich auf das + Symbol klicke, erscheint jedoch das Fenster zum Einfügen eines Unterdatenblatts. Ich vermute, weil festgelegt werden muss, welche der beiden Beziehungen angezeigt werden soll??? Siehe Bild im Anhang.

    Ist es in meinem Fall möglich, dies als Lösung hinzubekommen:
    Mitarbeiter
    + Unterdatenblatt mit den Untersuchungen für DIESEN Mitarbeiter
    ++ Unterdatenblatt mit Terminen für DIESE Kombination Mitarbeiter / Untersuchungen

    Vielen Dank im Voraus. Die Beispiel-Datenbank mit einigen fiktiven Datensätzen ist im zip angehängt.

    :)
     
    dermobb, 12. Mai 2020
    #1
  2. siehe Anhang
     
    fredfred, 14. Mai 2020
    #2
  3. Hallo,
    Du hast eine n:m Beziehung angelegt zur Zuordnung der Untersuchungen zum Mitarbeiter. Nutze diese auch und verwende deren Primärschlüssel für die Termine.
    Ich würde daher das Datenmodell etwas anders/einfacher machen. Siehe Bild.

    Du brauchst dann die n:m Tabelle nur zu filtern auf dem MA und hast nur noch die passenden Primärschlüssel zur Auswahl welcher als einziger Fremdschlüssel bei den Terminen gespeichert wird.
    Die UntersuchungID und die Personalnummer sind in der Termintabelle nicht mehr notwendig.

    PS:
    Verwende keine Sonderzeichen (-) in Feldnamen.
    Es ist zweckmäßig, die Fremdschlüssel kenntlich zu machen. Z.B. mit _F, ist aber nur eine Empfehlung.
     
    gpswanderer, 14. Mai 2020
    #3
  4. Liste im Kombifeld durch Tabellenbeziehungen einschränken?

    Zunächst einmal vielen Dank für die Antwort!
    Ich habe das Datenmodell auf deinen Vorschlag hin abgeändert. Nun ist es möglich, die gleiche Untersuchung einem Mitarbeiter mehrfach zuzuweisen. Das ist so nicht gewollt. Habe ich etwas falsch verstanden? Deine "PS" Hinweise werde ich mir zukünftig zu Herzen nehmen. Vielen Dank!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    dermobb, 15. Mai 2020
    #4
  5. Hallo,
    Du musst den beiden Fremdschlüsselfeldern einen eindeutigen Mehrfeldindex zuweisen, dann geht das nicht mehr.
    Das hat das gleiche Verhalten wie der zusammgesetzte Primärschlüssel.

    Und schon wieder ein PS:
    Bitte keine vollständigen Beiträge zitieren. Bei Deiner direkten Antwort wäre gar kein Zitat notwendig gewesen. Zitate verlängern die Themen und sollten sparsam eingesetzt werden.
     
    gpswanderer, 15. Mai 2020
    #5
  6. Auch dir herzlichen Dank!
    Ich teste das Folgende an deiner ungeänderten Datenbank:
    - Ich öffne das Formular für Termine
    - Ich gebe über das Kombifeld den Mitarbeiter ein
    - Dann klicke ich in das Kombifeld zur Auswahl der Untersuchung
    -- Jetzt wird mir tatsächlich eine reduzierte Auswahl im Kombifeld angezeigt, jedoch wird mir "nur" die Mitarbeiternummer und der Schlüssel der Untersuchung angezeigt, nicht der Beschreibungstext der Untersuchung. Zudem gibt mir das Kombifeld wiederholbar die Mitarbeiternummer zurück und nicht - wie notwendig - den Schlüssel für die Untersuchung.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    dermobb, 15. Mai 2020
    #6
  7. dann passe die Abfrage in den Feldern an.
    Stelle halt die U-ID an die erste Stelle der Abfrage, und die Bezeichnung an die zweite.
    Die PersID stellst du an die letzte STelle in der Abfrage.
    Ist doch reine Anordnung der Felder in der Abfrage.
    Das solltest du nach ergänzen, damit bei Datensatzwechsel die Kombi-Auswahl auch stimmt und nicht nur nach dem AfterUpdate der PersID

    Code:
    Auf ein anderes Problem wirst du aber noch stoßen, das Problem im Endlosformular mit abhängigen Kombifeldern, die Auswahlen leeren sich in den Feldern deren Feldinhalte nicht Teil der Datensatzherkunft des aktuellen Datensatzes ist.
     
    fredfred, 15. Mai 2020
    #7
  8. Liste im Kombifeld durch Tabellenbeziehungen einschränken?

    Vielen Dank nochmal, so ist das Verhalten wie gewünscht!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    dermobb, 17. Mai 2020
    #8
  9. So, ich habe mich jetzt weitestgehend durch dieses Projekt durchgewurschtelt und habe einen Stand erreicht, mit dem ich ganz vernünftig arbeiten kann.

    Es gibt aber noch zwei Punkte, die ich möglichst gern hinzufügen möchte. Sie passen auch weiterhin zur Überschrift dieses Themas. Ich hänge das Projekt wieder an, damit Hilfswillige direkt alles nachverfolgen können. Wäre super, wenn jemand helfen kann.

    1. Im Formular Mitarbeiter können Vorsorgeuntersuchungen (in einem Unterformular) zugeteilt werden. Eine Mehrfachzuweisung ist durch die Tabellenbeziehungen ausgeschlossen. Wie kann man jedoch die Liste des Kombifelds zur Auswahl des Untersuchungstyps einschränken, so dass bereits für diesen Mitarbeiter zugeteilte Untersuchungen nicht mehr angezeigt werden?

    2. Im Formular Termine können für die Mitarbeiter Termine zu ihren zugeteilten Untersuchungstypen organisiert werden. Dafür muss zunächst oben in einem Kombifeld der Mitarbeiter ausgewählt werden, für den ein Termin angelegt werden soll. Dann soll über das Kombifeld im Detailbereich die Untersuchung ausgewählt werden. Nach der Anleitung von oben werden nur die Untersuchungen angezeigt, die dem Mitarbeiter zugeteilt wurden. Hier hätte ich jetzt noch gern die zusätzliche Einschränkung, dass offene Untersuchungen (Datumsfeld abgeschlossen ist leer), die dieser Mitarbeiter noch hat, nicht zur Auswahl im Kombifeld angezeigt werden.

    Vielen Dank!

    Datenbank bei google drive: https://drive.google.com/open?id=18j...CkWUH7DdsRO5nM
     
    dermobb, 29. Mai 2020
    #9
  10. Hallo Nils,
    Ohne die DB gesehen zu haben, daher Luftcode
    1. ergänze die WHERE-Bedingung
    Code:
    2. ergänze die WHERE-Bedingung
    Code:
    (Aliase: U = tbl_untersuchungen, T = tbl_Termine)
    Falls du nicht klarkommst, poste die SQL-Strings der Kombi-DSHerkunft.
    gruss ekkehard
     
    Beaker s.a., 30. Mai 2020
    #10
  11. Ich befürchte, ich muss auf dein freundliches Angebot zurückkommen. *rolleyes.gif*

    1) Ich bekomme es nicht ohne Syntaxfehler hin. Zudem: Wo soll EineNummer herkommen?

    Hier der Code für die bisherige Datensatzherkunft:
    Code:
    2) In der Tabelle werden die abgeschlossenen Termine gespeichert. Sobald ein oder mehrere Termine für eine Untersuchung eines Mitarbeiters abgeschlossen sind (was der Normalfall ist, wenn die Datenbank wächst), wird mit deinem Vorschlag die Liste des Kombifelds nicht mehr eingeschränkt für diese Untersuchung. Sobald ein einziger Termin offen ist, soll jedoch die Auswahl eingeschränkt werden, auch wenn es vom gleichen Untersuchungstyp abgeschlossene Termine gibt (für diesen Mitarbeiter). Deine Lösung bringt mich näher, ist aber leider noch nicht die richtige. Ich vermute ebenfalls eine Lösung mit NOT EXISTS???

    Hier der Code bis jetzt:
    Code:
    Vielen Dank!
     
    dermobb, 1. Juni 2020
    #11
Thema:

Liste im Kombifeld durch Tabellenbeziehungen einschränken?

Die Seite wird geladen...
  1. Liste im Kombifeld durch Tabellenbeziehungen einschränken? - Similar Threads - Liste Kombifeld Tabellenbeziehungen

  2. Summenprodukt & Zählenwenns nach Text in gefilterter Liste

    in Microsoft Excel Hilfe
    Summenprodukt & Zählenwenns nach Text in gefilterter Liste: Hallo Excel Helfer Ich versuche eine Auswertung aus einer gefilterten Excel-Tabelle (Windows 10 pro) mit Texten zu machen. Ziel ist die Anzahl je Kategorie. z.B: "Neubauten Stadt" / "Neubauten...
  3. Terminliste in Kalender importieren

    in Microsoft Outlook Hilfe
    Terminliste in Kalender importieren: Hallo zusammen, ich habe ein kleines Problem und hoffe, dass mir hier eventuell jemand helfen kann. Habe so jetzt nach mehreren Suchen keine Lösung gefunden. Ich habe eine Worddatei mit mehren...
  4. Textfragment aus Liste auslesen und Elemente in Rangfolge bringen

    in Microsoft Excel Hilfe
    Textfragment aus Liste auslesen und Elemente in Rangfolge bringen: Hallo, ich habe ein Liste mit Zugriffen auf verschiedene Dokumente. Diese Dokumente haben einen unterschiedlichen Zugriffspfad. Ich möchte die einzelnen Dokumente nach verschiedenen Pfaden...
  5. Bestimmte Zellen aus geschlossenen Dateien in eine Master Liste hineinkopieren VBA

    in Microsoft Excel Hilfe
    Bestimmte Zellen aus geschlossenen Dateien in eine Master Liste hineinkopieren VBA: Hallo, ich bin an meiner Thesis dran und möchte Protokolle auswerten. Dazu habe ich Dateien, die Tageswerte enthalten. Ich möchte aus jeder Datei die gleichen Zellen kopieren und in eine...
  6. Sortierung einer Liste

    in Microsoft Excel Hilfe
    Sortierung einer Liste: Liebe Forenmitglieder, vorweg möchte ich Euch eine schöne Weihnacht und alles Gute weiterhin wünschen und hoffe, Ihr habt (hattet) eine schöne Zeit mit Familie und Freunden. Ich habe ein kleines...
  7. Liste der NETTOARBEITSTAGE.INTL

    in Microsoft Excel Tutorials
    Liste der NETTOARBEITSTAGE.INTL: =LAMBDA( c;d;e;f;NACHZEILE(SEQUENZ(NETTOARBEITSTAGE.INTL( c;d;e;f);;0);LAMBDA(d;ARBEITSTAG.INTL( c;d;e;f))))( Start;Ende;Wochentage;FreieTage) ... könnte man LISTNETWORKDAYS.INTL nennen.
  8. Adressbuch nicht anwählbar, nicht in der Liste

    in Microsoft Outlook Hilfe
    Adressbuch nicht anwählbar, nicht in der Liste: Hallo, Ich habe folgendes Problem, Windows 10 mit Office 2016, in Outlook ist das iCloud Adressbuch nicht anwählbar. Das erste Bild zeigt das vorhandene Adressbuch. Im zweiten Bild ist es nicht in...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden