Hallo Forum,
ich habe ein Formular, das ich mit Kombinationsfelder aus verschiedenen verknüpften Tabellen füttere.
Jetzt habe ich ein Feld in dem ich in einem Kombinationsfeld ein Haus auswähle. Darunter habe ich ein Kombinationsfeld in dem ich eine Abteilung auswähle. Funktioniert tadellos. Jedoch zeigt mit das Kombifeld alle Abteilungen aus 4 Häuser wie geht es, dass er mir nur die Abteilungen anzeigt, die im Kombifeld Haus ausgesuchtem Haus vorhanden sind?
Gruß
Mina
Hallo,
da muss erst mal das Datenmodell in Ordnung gebraucht werden.
Gibt es zu einer Abteilung nur ein Ansprechpartner ?
Die 1:1 Beziehung lässt nur einen AP zu.
Sollte das nicht eher eine Beziehung sein zu Unterabteilung_ID_F ?
Es genügt auch nur die Unterabteilung zu speichern, daraus ergibt sich die Abteilung automatisch.
Was willst Du mit den vielen Fremdschlüsseln ohne Beziehung ?
Du wiederholst auch Klartextfelder (Unterabteilung, Abteilung, Funktion).
In die Tabelle Funktion gehört nur der Klartext der Funktion und außerdem mus die Beziehung umgekehrt sein. Ein Fremdschlüssel zu Funktion beim Ansprechpartner. Die anderen FS in der Funktionstabelle sind überflüssig.
Die Teilnehmer der Begehung müssen in eine extra Tabelle, eines Tages hast Du einen 7. Teilnehmer (sag niemals nie) und dann ?
Das Datenmodell bedarf der gründlichen Überarbeitung das kann so nicht bleiben, da gibt es noch viele weitere Ungereimtheiten.
Beschreibe mal die Zusammenhänge einfach mal ganz in Prosa.
Hallo,
erstmal Danke für deine Antwort.
Es gibt tatsächlich für jede Unterabteilung oder Abteilung nur einen Ansprechpartner.
Nicht jede Abteilung hat eine Unterabteilung.
Die Teilnehmer entnehme ich aus der Tabelle Ansprechpartner
Ich habe das Datenmodell bereinigt
Gruß
Mina
Hallo,
zudem sehe ich Tabelle "Begehungsplanung" an falscher Stelle.
Was genau wird denn "begangen"? Ein Gebäude, eine Abteilung oder eine Unterabteilung?
Hallo,
Guten Morgen.
Alles sowohl Gebäude als auch Abteilungen und Unterabteilungen.
Die Ansprechpartner sind jeweilig die Bereichsleitungen, die als Teilnehmer bei den Begehungen dabei sind.
Jeder Ansprechpartner hat eine Funktion.
Gruß
Mina
Hallo,
ZitatJeder Ansprechpartner hat eine Funktion.
die Beziehung zwischen AP und Funktion ist falsch rum. Die Funktion muss als Fremdschlüssel in zum AP, denn der AP hat ja die Funktion.
ZitatNicht jede Abteilung hat eine Unterabteilung.
Dann lege eine Unterabteilung "Ohne Unterabteilung" und ordne die den Abteilungen ohne UA zu.
Die Beziehung erfolgt dann ausschließlich über die Unterabteilung.
Du solltest ID nicht einfach ID nennen, sondern z.B. GebäudeID. Wie sonst willst die IDs vernünftig unterscheiden ?
Ich glaube auch nicht, dass die Beziehungen so stimmig sind. Muss ich aber erst mal noch nachdenken.
Aus welcher Tabelle kommen die Teilnehmer ?
Teilnehmer müssen in einer extra Tabelle.
Ebenso die Beanstandungen, es gibt je mehrere Punkte die wahrscheinlich auch von jeweils anderen Personen zu erledigen sind.
Hallo,
O.K. Die Beziehung habe ich umgedreht.
Die Zuordnung "Ohne Unterabteilung" macht Sinn.
Die Teilnehmer kommen aus der Tabelle Ansprechpartner, da die jeweiligen Ansprechpartner der Abteilungen und Unterabteilungen auch Teilnehmer der Begehungen sind.
Es gibt ein Begehungsprotokoll das in Excel ausgeführt ist. In dem sind die Beanstandungen ausgeführt mit den jeweiligen Zuständigkeiten.
Die Access-Datenbank benutze ich für die Organisation der Begehungen und Überprüfungen.
Es gibt aber Fristen, in denen die Beanstandungen durchgeführt werden sollen. Diese sollen in der Tabelle eingearbeitet werden.
Gruß
Mina
@Mina,
zur Datenmodellentwicklung würde ich die Sache zuerst abstrakter angehen und einige Dir bekannte Aussagen bzgl. einer Begehung formulieren, woraus sich dann später die Tabellen nebst Beziehung ableiten lassen sollten.
* Ein Objekt (ob Abteilung, Unterabteilung, Gebäude oder Gebäudeabschnitt kann später spezifiziert werden) kann 0 x, 1 x oder mehrmals begangen werden.
* Eine Begehung kann ein oder viele Objekte umfassen.
* An einer Begehung nehmen mindestens eine (zumindest theoretisch) oder viele Personen teil.
* Eine Person kann an keiner, einer oder vielen Begehungen teilnehmen.
Hier wird jetzt Dein Fachwissen einfließen müssen - ich kann das nur grob schätzen:
* Es gibt Funktionen/Funktionalitäten (im Sinne von Verantwortung für ein inhaltliches Segment).
* Einem Objekt sind keine, eine oder viele Funktionen untegergeordnet.
* Eine Funktion kann mehreren Objekten zugeordnet sein.
* Es gibt einen Personenkreis.
* Eine Person ist für einen Zeitraum für eine oder viele Objekt/Funktionen zuständig.
* Eine Objekt/Funktion wird für einen Zeitraum von einer Person besetzt.
* Bei einer Begehung eines Objekts werden keine, eine oder viele seiner Objekt/Funktionen geprüft/untersucht/inspiziert. (Ggf. ist ein Fragen/Antwortkatalog vorhanden)
* Bei einer Beanstandung während der Begehung einer Objekt/Funktion wird ein Vermerk/Protokoll verfasst.
* Eine Beanstandung erfordert eine Rückmeldung über Beseitigung des Mißstands und/oder eine Reinspektion.
Dir fallen besimmt noch viele weitere Aussagen ein, aus denen sich dann ein sinnvolles Tabellengerüst ergibt.
Zu den Objekten ist zu überlegen, ob man mittels Self-Join eine Hierarchie-Struktur aufbaut oder wie von Klaus vorgeschlagen, mit Dummy-Objekten arbeitet.
Hallo,
das ganze sieht in groben Zügen so aus (siehe Anhang)
Sorry ! War nur in PDF möglich.
Gruß
Mina
Hallo Forum,
ich habe mir jetzt etwas gebastelt das (fast) funktioniert.
Ich bräuchte jedoch nochmal Eure Hilfe.
Ich habe jetzt zwei Basistabellen Begehungsplanung) und Bebrobungsplan). Beide Tabellen werden über zwei Formulare die über Kombinationsfelder aus mehreren verknüpften Tabellen gespeist wird.
(siehe Anhang)
Jetzt habe ich folgendes Problem:
Die Werte aus den Comboxes Begehungplanung werden mir als Tet in die Basistabelle übertragen.
Die Werte aus den Comboxes Beprobungsplan nicht sondern die ID.
Ich hätte gern auch im Beprobungsplan den Text und nicht die ID
Ich habe beide Combboxes gleich angelegt. Jedoch mit unterschiedlichem Resultat
Vergleich:
Datensatzherkunft Combox Gebäude Begehungplan
SELECT Gebäude.Haus FROM Gebäude ORDER BY Gebäude.Haus;
Datensatzherkunft Combbox Gebäude Beprobungsplan
SELECT [Gebäude].[Gebauede_ID], [Gebäude].[Haus] FROM Gebäude;
Was mache ich falsch
Gruß
Mina
Hi Mina,
das sieht immer noch sehr trüb aus. :) Es gilt Objekte von Handlungen zu trennen.
Eine Begehungsart wäre ein Attribut einer geplanten Begehung und nicht umgekehrt. Kann eine Begehung mehrere Begehungsarten beinhalten, so wäre das über eine m:n-Beziehung in 3 Tabellen aufzulisten. Die Details liegen in Deinem Wissen. Eine Begehungsart oder ein Beprobungsdatum dürfte auch kaum ein Attribut eines Gebäudes sein. Ein Autofahrer wäre auch kein Attribut eines Autos, sondern ein Attribut einer Fahrt mit einem Auto - ein Motor hingegen schon.
Vielleicht hilft Dir ja der Beitrag von Andreas Stern Datenmodell entwickeln: Welche Tabellen und Beziehungen? (http://www.office-loesung.de/ftopic318127_0_0_asc.php), der zu dem Thema auch ein Buch (http://www.andreasstern.de/buch/adamo.php) geschrieben hat.
Hallo,
Danke für deine Antwort.
Ich habe die Objekte und die Attribute umgestellt.
Das löst jedoch mein Problem nicht.
Bei der Begehungsplanung wird der Feldinhalt eingetragen. Bei der Beprobungsplanung wird nach wie vor die ID eingetragen.
Gruß
Hallo,
welche ID wird wo eingetragen ?
Hi Mina,
so wird das nichts (und für mich langsam auch etwas müßig, weil mir einfach das Hintergrundwissen fehlt). Versuche das Modell mit ADaMo (Buchlink) auf die Beine zu stellen, wobei Du klare, eindeutige Aussagen triffst.
* Für ein einsames Datum eine Tabelle anzulegen, scheint wenig sinnvoll zu sein.
* Eine Beprobungsart dürfte kaum ein Plan-Attribut aufweisen. Und die Begehungsart ist noch genauso wie zuvor falsch. :(
Tipp: Du solltest erst Basics lernen (z. Bsp. wie man eine m:n-Beziehung richtig modelliert), bevor Du weitere Verrenkungen durchführst.
Hallo Klaus,
ich habe ein Formular in dem ich über ein Kombinationsfeld z.B das zu begehende Gebäude aussuche. Das ausgesuchte Gebäude soll dann in der Tabelle Beprobungsplan unter Gebäude abgespeichert werden und zwar der Text wie das Gebäude heißt.
Ich habe ein Formular zur Anlage einer Begehungplahnung angelegt und da funktioniert es. Danach habe ich ein Formular für die Beprobungsplanung angelegt. Wenn ich hier ein Gebäude im Kombinationsfeld Gebäude auswähle, wird nicht das Gebäude als Text in die Beprobungsplan-Tabelle im Feld Gebäude eingetragen, sondern die ID des Gebäudes aus der Gebäudetabelle. Somit habe ich in der Tabelle Beprobungsplanung in dem Feld Gebäude eine Zahl stehen. Man kann dann natürlich in der Tabelle Gebäude nachsehen welches Gebäude sich hinter der Zahl verbirgt Ist allerdings umständlich.
Liebe Lachtaube! Meine Defizite sind mir bewußt. Wenn obengenanntes Problem zu lösen ist, dann kann ich mit meiner Datenbank gut arbeiten.
Ein Gebäude mehrere Abteilungen;
Eine Abteilung mehrere Ansprechpartner;
Ein Ansprechpartner mehrere Funktionen
Eine Begehung mehrere Begehungsarten
Gruß
Mina
Hallo,
ZitatDas ausgesuchte Gebäude soll dann in der Tabelle Beprobungsplan unter Gebäude abgespeichert werden und zwar der Text wie das Gebäude heißt.
das ist ganz sicher keine gute Idee. Es sollte die ID abgespeichert werden und nicht der Text. Das ist ja der Sinn einer ID, bzw. der ganzen Beziehungen, dass immer nur die Schlüsselfelder gespeichert werden.
Wenn ein Kombinationsfeld zur Auswahl des Gebäudes verwendest, lässt sich das in den Eigenschaften übe die Spaltenbreite 0cm = unsichbar) so einstellen, dass der Text zu sehen ist, aber die Zahl gespeichert wird.
Jedes andere Vorgehen wäre für eine Daten kontraproduktiv.
ZitatEin Ansprechpartner mehrere Funktionen
Wieso hat dann eine Begehungsplanung eine Funktion ?
Die Beziehung zwischen Begehungsplanung und Begehungsart ist falsch rum, in die Begehungsplanung muss der Fremdschlüssel zur Begehungsart.
Da gibt es noch viel mehr Ungereimtheiten. Aber mangels genauer Kenntnis der Zusammenhänge und Abläufe kann ich da nichts weiter sagen.
Hallo,
ZitatMan kann dann natürlich in der Tabelle Gebäude nachsehen welches Gebäude sich hinter der Zahl verbirgt Ist allerdings umständlich.
Das ist nicht umständlich, das ist genau richtig so. Wozu sonst benutzt Du ein relationales Datenbanksystem?
(Siehe u. st. Links 1 , 1a und 1b in meiner Signatur)
Wenn Du Formulare und darin richtig aufgebaute Kombifelder für das Auswählen aus Nachschlage- (sprich 1-) Tabellen benutzt, wird im Kombifeld genau das Richtige (sprich der Gebäudename) angezeigt.
Hallo Klaus, Hallo Franz, Hallo Lachtaube
vielen Dank für Eure Anregungen.
Ich habe in den Eigenschaften der Kombifelder die 0 Spalte herausgenommen und es funktioniert so wie es sein soll.
Ich werde das Thema Beziehungen vertiefen.
Es gibt natürlich zu einer Begehungsart mehrere Begehungsplanungen.
Euch einen schönen Tag
Gruß Mina
Hallo,
ZitatIch habe in den Eigenschaften der Kombifelder die 0 Spalte herausgenommen
was heißt, die 0 Spalte herausgenommen ?
Ich fürchte, Du hast Dir jetzt ganz andere Probleme bzw. Neue eingehandelt.
Ich habe in den Eigenschaften der Kombinationsfelder die Spaltenbreite 0 belassen.
Die Datenbank funktioniert jezt.
Ich werde Eure Tipps beherzigen und mich mit dem Aufbau einer Datenbank beschäftigen.
Eine Frage habe ich noch. Ich habe Das Datenbankmodell im Anhang.
Ich möchte einer Beprobungsplanung mehrere Bebrobungsdatum zuweisen. Ich bekomme aber eine 1 zu Unendlich Beziehung nicht mit refentieller Integrität hin. Die Beprobungsdatum Tabelle ist mit Daten gefüllt in die Beprobungsplan -Tabelle ist leer. Wie gehe ich vor?
Frage ist hinfällig. Sie war ein wenig übereilt. Ich habe es hinbekommen.
Gruß
Mina