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. Zweispaltige Liste umsortieren

    in Microsoft Excel Hilfe
    Zweispaltige Liste umsortieren: Moin, eine einspaltige Liste mittels SPALTENUMBRUCH umzusortieren ist ja kein Hexenwerk. Aber eine zweispaltige Liste so umzusortieren, dass die Datensätze auch zusammenbleiben, will mir momentan...
  3. Excel Kalender in Word als Liste exportieren

    in Microsoft Excel Hilfe
    Excel Kalender in Word als Liste exportieren: Hallo zusammen, ich habe folgendes vor: Ich besitze einen Kalender (Jahresplan) und möchte diesen gerne in Word exportieren. Wichtig ist das die Termine den Personen zugeordnet sind und nach...
  4. SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste)

    in Microsoft Excel Hilfe
    SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste): Hallo zusammen, ich bräuchte Eure Hilfe, bei dem ich nicht weitere komme. Ich lasse importiere SQL-Daten über mehrere Abfragen im Editor vor filtern. Eine Spalte über einen Artikel...
  5. XVERWEIS Liste erstellen

    in Microsoft Excel Hilfe
    XVERWEIS Liste erstellen: Hallo, ich habe eine Liste mit diversen Daten. Ich will nun aus dieser Liste bestimmte Zellen kopieren, wenn 2 Bedingungen erfüllt werden. Habe es mit XVERWEIS versucht komme aber nicht hin....
  6. Schnellsprung zu einer Zeile in einer Liste (Buchstabe)

    in Microsoft Excel Hilfe
    Schnellsprung zu einer Zeile in einer Liste (Buchstabe): Ich habe eine Liste mit Lieferorten. Diese ist Alphabetisch geordnet. Ich habe sie so abgespeichert, dass man Mittig liegt und dann je nach Stadtname hoch oder runterscrollen muß. Die Liste wird...
  7. Zählenwenn mit Suchkriterien als Liste

    in Microsoft Excel Hilfe
    Zählenwenn mit Suchkriterien als Liste: Hallo Forum, ich möchte die Zählenwenn-Funktion nutzen mit anpassbaren Suchkriterien, welche in einer Spalte erweiterbar sein sollen. Wenn z.B. ein Wert aus Spalte A im Suchbereich gefunden wird,...
  8. Daten von alter Liste in neue übertragen

    in Microsoft Excel Hilfe
    Daten von alter Liste in neue übertragen: Ich habe auf Excel eine Lagerliste aus meinem Warenwirtschaftssystem erstellt. Ich muss jede Woche eine aktuelle Lagerliste erstellen. Ich habe die Liste mit zusätzlichen Zeilen erweitert. Wenn...
  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