Office: (Office 2010) Abhängige Kombinationsfelder

Helfe beim Thema Abhängige Kombinationsfelder in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, bin absoluter Neuling. Probiere eine Belegungsdatenbank zu realisieren. Hänge jetzt an den abhängigen Kombifeldern. Habe hier schon... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von ManniManfred, 9. Oktober 2015.

  1. Abhängige Kombinationsfelder


    Hallo zusammen, bin absoluter Neuling.
    Probiere eine Belegungsdatenbank zu realisieren.
    Hänge jetzt an den abhängigen Kombifeldern. Habe hier schon einen Beitrag dazu gesehen (ACC2013) (http://www.ms-office-forum.net/forum....php?t=321682), bekomme diesen aber nicht auf mich umgeschrieben.
    Habe mehrere Tabellen: Unterkünfte, Häuser, Stockwerk, Zimmer, Personen, Belegung.

    Unterkünfte, Häuser, Stockwerk, Zimmer sind 1:n in Beziehung. Und Belegung verknüpft Personen mit dem jeweiligen Unterkünfte, Häuser, Stockwerk, Zimmer über Nachschlagefelder. (Person anhand Name auswählen, Unterkunft anhand Bezeichnung, Haus anhand Feld HausNr, Stockwerk anhand Feld Bezeichnung, Zimmer anhand Feld Zimmernummer).

    Nun muss ich Unterkünfte, Häuser, Stockwerk, Zimmer Kombifelder im Formular voneinander abhängig machen. Damit ich bspw. in der Zimmerauswahl nicht 100 mal Zimmer1 aus allen Unterkünften habe. Sondern nur das eine Zimmer1 der zuvor gewählten Unterkunft, dessen Haus, dessen Stockwerk....

    Habe erstmal versucht nur die Datensatzherkünfte des Kombifeld WUnterkunft für Unterkunft und WHäuser für Häuser voneinander abhängig zu machen.
    Die dortige Schreibweise weicht aber von allen Forenbeiträgen ab.
    Bspw. aus dem Forum
    SELECT t_Kunden.Kunden_Nr, t_Kunden.Firma FROM t_Kunden ORDER BY t_Kunden.Firma;

    Gleichzusetzen mit meiner WUnterkunft Datensatzherkunft:
    SELECT [Unterkünfte].[ID], [Unterkünfte].[Unterkunft] FROM Unterkünfte ORDER BY [Unterkunft];

    Meine Datensatzherkunft ist etwas umfangreicher, zudem die [].
    Meine Datensatzherkunft hat sich automatisch mit dem Formular auf Grundlage der Belegunstabelle(mit den Nachfragefeldern) erstellt.

    Genauso bei meiner Datensatzherkunft des Kombifeld WHausNr:
    SELECT [Häuser].[ID], [Häuser].[Hausnummer] FROM Häuser ORDER BY [Hausnummer];

    Hier wieder eine großer Unterschied zur Forumschreibweise:
    SELECT OrtID, Kunden_Nr, Ort FROM t_Kunden_Standort;

    Und diesen Afterupdatecode aus dem Forum bekomme ich somit schonmal gar nicht zusammen gebastelt

    Meine momentane Version:
    Private Sub WUnterkunft_AfterUpdate()
    Me!WHausNr.RowSource = "SELECT [Häuser].[ID], WHausNr, [Häuser].[HausNr] From Häuser " & _
    "WHERE WUnterkunft= " & Me.WUnterkunft
    End Sub


    Forumversion:
    Private Sub Kunden_Nr_AfterUpdate()
    Me!StandortID.RowSource = "SELECT OrtID, Kunden_Nr, Ort From t_Kunden_Standort " & _
    "WHERE Kunden_Nr = " & Me.Kunden_Nr
    End Sub


    Wie gesagt, ich probiere einfach nachzubasteln.... bekomm es aber nicht hin.


    Wäre sehr dankbar wenn mir da jemand helfen kann!!!

    :)
     
    ManniManfred, 9. Oktober 2015
    #1
  2. Servus ManniManfred,
    meines Erachtens sind die Nachschlagefelder in Tabellen ein grosses Problem
    und sollten in Tabellen nur von erfahrenen Programmierern während ihrer Testphasen benutzt werden.
    Ausserdem fehlt WUnterkunft in Deiner Selection.
    Code:
    Sollte WUnterkunft vom Datentyp Text sein, dann muss das zusätzlich in einfache Hochkommata.
    Code:
     
    Ohrkester, 11. Oktober 2015
    #2
  3. Hallo,
    wie mein Vorschreiber rat ich Dir, entferne ohne Wenn und Aber die Nachschlagefelder in den Tabellen die sind von Übel.
    Siehe hierzu:
    http://dbwiki.net/wiki/Access_Anf%C3...schlagefeldern
    In Formularen kannst Du diese als Kombifelder problemlos verwenden.
     
    gpswanderer, 11. Oktober 2015
    #3
  4. Abhängige Kombinationsfelder

    Vielen Dank für die Hilfe. Das ist schonmal sehr interessant. Das wusste ich nicht. Habe nun die Nachschlagefelder entfernt. Habe normale 1:n-Beziehungen zwischen den Tabellen. Die Tabelle Belegung führt nun alle ID's der anderen Tabellen als Felder auf. Diese fülle ich nun mit einem Formular. Wieder die gleichen Kombifelder. Könnte auch funktionieren.

    Dennoch schaffe ich es immer noch nicht die Abhängigkeit herzustellen.

    Tabelle Unterkünfte hat die Felder:
    ID (1;2;3; .....)
    Unterkunft (Horizont; Georgshöhe.....)
    Gemeinde (Neuhof; Gersfeld, ......)

    Tabelle Häuser hat die Felder:
    ID (1.1;1.2;1.3;1.4; 2.1 ....)
    UnterkunftID (1;2;3;4...)
    Hausnummer (8b, 15, 17, ....,)
    Straße (Schachtstraße, ......)


    Tabelle Belegung hat die Felder:
    ID (000.000.000 Autowert)
    Person (1111111111)
    Unterkunft (1;2;3;.....)
    Haus (1.1;1.2;1.3;.....)
    Stockwerk (1.1.1;1.1.2;......)
    Zimmer (1.1.1.1;1.1.1.2;1.1.1.3;......)

    (Hier soll immer noch per Formular und Kombifeldern, Personen aus der Tabelle Personen, zu Unterkunft, Haus, Stock, Zimmer zugeordnet werden)

    WUnterkunft hat folgende Datensatzherkunft:
    SELECT Unterkünfte.ID, Unterkünfte.Unterkunft, Unterkünfte.Gemeinde FROM Unterkünfte ORDER BY Unterkünfte.Gemeinde DESC;

    WHausNr hat folgende Datensatzherkunft:
    SELECT Häuser.ID, Häuser.Hausnummer, Häuser.Straße FROM Häuser;

    Habe jetzt an dem Afterupdatecode tausendfach rumgebastelt. Geht aber nichts.
    Momentan sieht er so aus:

    Private Sub WUnterkunft_AfterUpdate()
    Me!WHausNr.RowSource = "SELECT Häuser.ID FROM Häuser WHERE WUnterkunft= " & Me!WUnterkunft

    End Sub

    Ist aber scheinbar totaler Blödsinn (sorry dafür *biggrin.gif*)
     
    ManniManfred, 11. Oktober 2015
    #4
  5. Servus ManniManfred,
    stell doch mal eine Demo DB ins Forum.
    Daran wirds einfacher, Deinen Sermo nachzuvollziehen.
    Bitte vorher über die Accessoptionen 'Komprimieren/Reparieren'
    und dann in ein zip- oder rar-File wandeln.
     
    Ohrkester, 11. Oktober 2015
    #5
  6. Hoffe so ist es richtig.

    Danke!!!!!!!!!!!
     
    ManniManfred, 11. Oktober 2015
    #6
  7. Das Prinzip ist folgendermaßen:
    Code:
    also in dem Fall bei dir:
    Code:
    Ein paar Hinweise noch: Wenn du bei deinen Tabellen- und Feldnamen auf Sonderzeichen verzichtest, muss man auch nicht immer diese blöden eckigen Klammern um alles drumrum tippseln.
    IDs würde ich immer spezifizieren: HausID, UnterkunftID, ... sonst findest du dich irgendwann nur noch schwer durch.
    Fremdschlüssel kann man auch gut kennzeichnen: UnterkunftID in tblUnterkunft, UnterkunftFK in tblHaeuser.
    Code:
    Und Prefixe sind auch sehr hilfreich: tblHaeuser, frmHaeuser, rptHaeuser, ....

    maike
     
  8. Abhängige Kombinationsfelder

    1. hatte Deine DB einen "Schlag"
    Ich hab sie daher in eine neue importiert.

    2. Datenbankobjekte, Felder und Steuerelemente sollten "sprechende" Namen haben und Namenskonventionen entsprechen.
    Bei mir ist es folgenderweise
    tbl_ = Präfix einer Tabelle
    qry_ = Präfix einer Abfrage
    frm_ = Präfix eines Formulars
    cbx oder cbo = Präfix eines Kombinationsfeldes.
    Primärschlüssel müssen "sprechend" sein und die Bezeichnung "ID" am
    Namensende haben.
    Fremdschlüssel müssen denselben Namen haben wie der zugehörige Primärschlüssel ihn hat. Am Namensende ein "ID_f"
    Das finde ich eine geniale Idee, die ich abgeschaut habe.
    So sehe ich sofort in den Beziehungen auch noch ohne Beziehungslinien,
    wer zu wem gehört.
    Auf keinen Fall sollte es doppelte Feldnamen über die verschiedenen Tabellen hinweg geben. Das kann später zu Namensmonstern in Abfragen
    führen.

    Entsprechend dieser Massgaben hab ich Deine DB angepasst.
    In den Beziehungen hab ich ref. Integrität eingestellt.
    In der qry_PersonFürKombi hab ich ein berechnetes Feld 'kombName' eingefügt, in
    welchem Nachname und Vorname zusammengefügt sind.
    In der qry_HausFürKombi hab ich Starße und Hausnummer in 'kombHaus' zusammengefügt.
     
    Ohrkester, 12. Oktober 2015
    #8
  9. Einfach wunderschön! *Smilie

    Vielen Dank Ohrkester!!!

    Ich wäre verloren gewesen. Habe mich jetzt etwas damit auseinander gesetzt und probiert weiter zu machen.
    Die Kombi funktionieren top! Die Struktur und Beschriftungen machen auch Sinn!

    Habe aber jetzt ein grundlegendes Problem mit der Aufgabe, die die DB später mal erfüllen soll, da ich ja nun keine Nachschlagefelder mehr habe und weiß jetzt nicht wie ich weiter machen soll...

    Die DB soll ja Belegungen managen. Grundsätzlich müsste ich dazu ja einschränken wie viele Plätze im jeweiligen Zimmer verfügbar sind. Sprich in der Tabelle Belegung müssten nach 4 Datensätzen des gleichen Zimmers mit der "Kapazität 4" Schluss sein. Am besten wäre eine Fehlermeldung gleich beim Anlegen einer neuen Belegung im Belegungsformular, die die Kapazität übersteigen würde.

    Ist so etwas überhaupt realisierbar?

    Meine Vorstellungen waren als ich angefangen habe, wie benannt eine grundlegende Begrenzung der Zimmerbelegung, je nach Kapazität.... im weiteren Verlauf alles was nützlich sein kann um den Überblick über die Belegung der Unterkünfte zu haben. Auswertungen? Übersichten mit den Summen Gesamtbelegung und Gesamtfreiplätze aller Unterkünfte? Genauere Übersichten über einzelne Unterkünfte/Stockwerke mit allen Zimmern und deren Bewohner?
    Freie Zimmer nach Kriterien suchen? Freie Plätze nach Kriterien der bereits im Zimmer lebenden Mitbewohner? usw...




    Danke für deine/eure Mühe!!!
     
    ManniManfred, 12. Oktober 2015
    #9
  10. Aufgabe in verdauliche Teilschritte aufbröseln und lösen:
    • Du brauchst eine Kapazäts-Info. Eine Tabelle, die die Räume sowie die maximale Kapazität vorhält.
    • Die aktuelle Belegung kannst du per Aggregationsfunktion (DomSumme) ermitteln, die noch freien Kapazitäten dann berechnen.
    • Anhand dieser Berechnung ggf. eben keine Buchungen mehr zulassen.

    Datenmodell aufbauen, dann die Masken samt VBA erstellen und verfeinern.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Andre.Heisig, 12. Oktober 2015
    #10
  11. Die Kapazität hast Du schon richtigerweise in tbl_Zimmer.
    Zum Belegen ohne Kontrollfunktionen machst Du noch 3 Felder in tbl_Belegung.
    AnzPers (Integer), DatumVon (Datum/Uhrzeit), DatumBis (Datum/Uhrzeit). Evtl. noch ein Feld belegt (Ja/nein).

    Um die Belegungen kontrollieren zu können, musst Du erstens die Belegung kontrollieren durch eine Kontrolle des Zeitraums(Datum Von --DatumBis) UND ob belegt (Ja/nein).
    Sollte es auch möglich sein, dass verschiedene Personen in einem Zimmer die Plätze buchen können, musst Du zusätzlich
    die Restanzahl der vermietbaren Plätze kontrollieren. Belegt(Ja/Nein) klickst Du erst an, wenn max. Kapazität erreicht ist.
    Das machst Du über tbl_Zimmer.Kapazität - sum(AnzPers im vermieteten Zeitraum des Zimmers).

    Das Feld belegt (Ja/nein) könnte man sich durch etwas mehr Berechnungen und VBA auch ersparen. Ich würde es aber erst einmal so probieren.
    Wie Andre.Heisig richtigerweise sagt: Schritt für Schritt.

    EDIT: Das könnte ein Abfragen Ansatz für die Kontrolle der Belegung sein. Möglicherweise muss da noch eine Zwischentabelle im DB-Modell her.
    Den folgenden Text einfach kopieren und in eine leere Abfrage in SQL-Ansicht kopieren.
    Code:
     
    Ohrkester, 13. Oktober 2015
    #11
  12. Ok, schonmal vielen Dank für den Code und die Tips.

    Es ist folgendermaßen:
    Ich brauche keine Zeitspanne für eine Belegung.
    Jede Belegung ist auf unbestimmte Zeit, bis sie gelöscht wird oder in ein anderes Zimmer umverteilt. Ich brauche auch später in einer Auswertung/Übersicht keine kalendarische Anordnung von belegten und unbelegten Zimmern.
    Der Belegungsplan ist nicht zum Zweck von "Buchungen" wie in Hotels oder Pensionen zu sehen.
    Ich muss nicht sehen wie lange ist welches Zimmer belegt. Erst dann wenn die Person ausgezogen ist, muss ich Sie im Nachhinein austragen und wieder sehen das etwas frei ist. Vorher ist nicht bekannt wann jemand wie lange einzieht.
    Ich muss nur sehen wo freie Plätze sind und wer in den Zimmern ist.

    (In einer ?grafischen? Übersicht müsste ich später zum Beispiel ausgewählt nach Unterkunft/ Stockwerk eine Art Raumplan sehen. Sprich Zimmerbezeichnung mit Kapaziät und aktuelle Belegung (3von4) jeweils als Kopfzeile und darunter die drei Personen mit Name,Herkunft etc untereinander. Danach darunter das nächste Zimmer usw. Wie ein Übersichtsplan übers Stockwerk (falls das so machbar ist?).


    Eines von mehreren Bett (Plätzen) in einem Zimmer wird mit einer Bestimmten Person(Datensatz) belegt.
    Ich brauche also nicht "Zimmer belegt -> Ja/Nein", sondern bspw. "3/4 belegt".


    Ich hatte den Ansatz gewagt eine Abfrage (qry_Belegung Abfrage)zu erstellen.
    Diese gibt nun als Felder
    Unterkunft,Hausnummer,Stockwerk,ZimmerNr,(alle gruppiert),Anzahl der ZimmerID's(Anzahl), ersterWertderKapazität (Erster Wert,ist ja bei den zusammengefassten Belegungen immer die gleiche Kapazität)

    Nun habe ich probiert ein Makro für "Beim Klicken" auf Speichern der neuen Belegung zu basteln.
    Ist im Anhang. Aber scheinbar mal wieder Schrott *frown.gif*

    Ist das jedenfalls die richtige Richtung?
    Lässt sich mit den Feldern aus der Abfrage überhaupt rechnen?
    Gibt es einen anderen Ansatz?


    Ich lass es jetzt erst mal so stehen...

    Erneut schon mal Danke
     
    ManniManfred, 13. Oktober 2015
    #12
  13. Abhängige Kombinationsfelder

    Mir scheint, dass Du noch nicht genau weisst, was Du willst.
    Du musst, ohne eine Datenbank anzufassen, Dir mal überlegen, mittels welcher Logik Deine Forderungen erfüllbar sind. Es reicht dafür Papier und Bleistift.
    Meiner Meinung nach geht es nicht ohne Datumsfelder (wie auch immer sie heissen mögen) und den Nachweis der Belegung durch Personen an einem bestimmten Datum (oder zwischen Datumszeiträumen).

    Und immer wieder:
    Erst muss das Prinzip der DB gelöst sein, bevor man damit zu spielen beginnt.
    Bei der Einführung von Makros bin ich dann sowieso nicht mehr dabei.
     
    Ohrkester, 13. Oktober 2015
    #13
  14. Moin,
    das ist ein ziemlich ambitioniertes Projekt für einen Anfänger.
    Ich gehe mal recht in der Annahme, dass es sich hier um eine Flüchtlingsunterkunft handelt?
    Menschen werden aufgenommen, auf die Unterkunft verteilt, bleiben eine unbestimmte Zeit lang und werden dann woanders hin geschickt?

    Fang wie gesagt zunächst mit dem Datenmodell an, Tabellen und Beziehungen - dazu wirst du hier sicherlich auch Hilfe bekommen.
    Danach kommen dann die Feinheiten, Formulare, Berichte, grafische Darstellungen ...

    Von Makros wirst du dich allerdings verabschieden müssen, wenn du hier im Forum Hilfe suchst, damit arbeitet hier so gut wie niemand - aus gutem Grund. Wenn du dich also mit VBA-Programmierung anfreunden magst, auch dazu gibt es hier viel Kenntnis, die wir gern teilen.

    accdbs (Version 2007 und höher) kann ich nicht öffnen, ich arbeite mit 2003, sonst würde ich mir das Ganze mal ansehen.

    Aber vielleicht steigt Ohrkester ja wieder ein, wenn du das böse Wort "Makro" vermeidest *wink.gif* .

    maike
     
  15. Hier die Version in Access 2003.
    die Abfragen'qry_Belegung' und 'qry_BelegungsKontrolle' sind interessant .
    Die Splitformdarstellung ist da nicht möglich.
    Aber zum Üben reichts so ja auch.
     
    Ohrkester, 14. Oktober 2015
    #15
Thema:

Abhängige Kombinationsfelder

Die Seite wird geladen...
  1. Abhängige Kombinationsfelder - Similar Threads - Abhängige Kombinationsfelder

  2. Kombinationsfeld in Abhängigkeit

    in Microsoft Access Hilfe
    Kombinationsfeld in Abhängigkeit: Hallo zusammen, obwohl dieses Thema schon behandelt wurde, komme ich leider nicht mit den vorherigen Lösungen weiter. Ich versuche eine Auswahl in Abhängigkeit zu erstellen. Ich möchte, dass mir...
  3. Kombinationsfeld abhängigkeit

    in Microsoft Access Hilfe
    Kombinationsfeld abhängigkeit: Guten Tag Leider will es mir einfach nicht gelingen dieses zwei Kombinationfelder zu verbinden (auch mit DonKarlo nicht) Einzelnes Formular Kombinationsfeld - 1. Feld (Feldname -> PosRepTyp)...
  4. Abhängige Kombinationsfelder

    in Microsoft Access Hilfe
    Abhängige Kombinationsfelder: Hallo, habe mich jetzt auch registriert, weil ich wie so viele andere vor mir ohne Unterstützung nicht mehr weiterkomme. Für eine IHK Prüfung, möchte ich eine Inventarisierungs-Datenbank...
  5. abhängige Kombinationsfelder mit Daten aus derselben Tabelle im Formular

    in Microsoft Access Hilfe
    abhängige Kombinationsfelder mit Daten aus derselben Tabelle im Formular: Hallo, ich habe wahrscheinlich das ganze Internet abgesucht und hab verschiedene Lösungsansätze ausprobiert, nur leider hat nichts geklappt. Wie ihr dem Titel entnehmen könnt, handelt es sich um...
  6. Abhängige Kombinationsfelder

    in Microsoft Access Hilfe
    Abhängige Kombinationsfelder: Hallo Zusammen! Ich benötige dringend Hilfe bei der Erstellung von Kombinationsfeldern. Da ich in Access kein Profi bin und in VBA auch nur wenig Grundkenntnisse habe, komm ich mit der Lösung...
  7. Abfrage in Abhängigkeit eines Werts in einem Kombinationsfeld

    in Microsoft Access Hilfe
    Abfrage in Abhängigkeit eines Werts in einem Kombinationsfeld: Hallo zusammen, ich bin blutiger Access Anfänger und meine VBA Kenntnisse sind auch eher rudimentär. Vor allem SQL war mir bis vor kurzem ein Fremdwort. Vielleicht kann mir ja hier jemand...
  8. Abhängige Kombinationsfelder mit mehreren Makros verknüpfen

    in Microsoft Excel Hilfe
    Abhängige Kombinationsfelder mit mehreren Makros verknüpfen: Hallo liebe Office-Lösung Gemeinde, nachdem ich bisher immer stiller (und äußerst dankbarer) Leser war, möchte ich mich nun mit einem eigenen Problem an euch wenden und hoffe, dass ihr mir...
  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