Moin!
Ich habe zwei Tabellen (1. Mitarbeiter / 2. Lehrgänge), deren Beziehungen (Teilnahme) in einer 3. Tabelle erfasst sind.
Nun möchte ich eine Übersicht welche Lehrgänge (Spalte) von welchen Mitarbeitern (Zeile) besucht werden.
Problem hierbei: wurde ein Lehrgang von noch keinem Mitarbeiter besucht (sprich gibt es in der 3. Tabelle keinen einzigen Datensatz/Wert) wird die entsprechende Spalte also der Lehrgang nicht angezeigt.
Ich möchte aber alle Lehrgänge darstellen, um zu sehen welche Auswahl es gibt.
Ein erster Versuch bei den Eigenschaften der Verknüpfungen (3. Tabelle - Lehrgang; alle Datensätze aus ,,Lehrgang" anzeigen) klappte nicht, da es ja noch die Verknüpfung ,,Mitarbeiter - 3. Tabelle" gibt.
Ich bin kein ITler und kann nicht programmieren. Bitte habt Nachsicht.
Mfg
Thomas D.
Hallo,
den ersten Versuch solltest Du weiter verwenden, nur so geht es.
Left/Right Join muss auf die Beziehung Lehrgang - Mitarbeiter angewendet werden.
Da musst Du halt etwas probieren.
Zeige mal ein Bild des Beziehungsfensters.
Hallo Thomas,
wenn Du in einer Abfrage zwei Tabellen verknüpfst, kannst Du über den Verknüpfungstyp steuern, dass, z.B. alle Datensätze der linken Tabelle angezeigt werden, auch wenn in der rechten Tabelle ein korrospondierender Satz fehlt. Zu den Verknüpfungseigenschaften gelangst Du, indem Du mit der rechten Maustaste auf die Verbindungslinie klickst. So kannst Du Dir zuerst eine Abfrage (noch keine Kreuztabellenabfrage) bauen, in der alle Daten(sätze) enthalten sind, die Grundlage für die Kreutztabelle sein sollen. Auf diese Abfrage setzt Du dann dein Kreuztabellenabfrage auf.
Vielen Dank für die fixe Antwort. Bei zwei verknüpften Tabellen wäre es nicht das Problem. Ich habe allerdings drei verknüpfte. Ich versuche morgen mal ein Bild der Verknüpfungen einzustellen. (Ist alles auf dem Arbeitsrechner)
Zitat von: MzKlMu am Juni 23, 2025, 11:16:32den ersten Versuch solltest Du weiter verwenden, ......
Danke für die fixe Meldung.
Ich mache gleich morgen ein Bild. (Ist alles auf dem Arbeitsrechner)
Hier das Bild der Beziehungen.Beziehungen.png
Kurze Rückfrage:
Möchtest du alle Lehrgänge und die entsprechenden MAs dazu anzeigen oder von den MA ausgehend, alle MAs und deren jeweils besuchte Lehrgänge anzeigen?
Was ist das für eine Beziehung in VD-Vollzug rechts von ID?
Dann solltest du mal ganz schnell über übliche Namenskonventionen nachdenken bzw. nachlesen. Die Tabellennamen sind anzupassen und die Felder mit Fremdschlüssen sind entsprechend zu kennzeichnen, z.B. F_Lehrgang_ID oder F_MA_ID. Manche stellen das F auch hinten dran, daß wäre jetzt egal, Hauptsache man kann Fremdschlüsselfelder erkennen. Verwende außerdem keine Sonder- und Leerzeichen in Feldnamen, ausgenommen den Unterstrich.
"Name" als Feldbezeichner ist auch nicht glücklich, weil eine VBA Anweisung bereits so benannt ist. Besser wäre eine "sprechende" Bezeichnung, wie z.B. "Nachname", damit ist dann alles klar.
Gruß Knobbi38
Hallo,
zusätzlich zu den Hinweisen von Ullrich.
Warum ist keine referentielle Integrität eingestellt?
Das gehört unbedingt dazu, erst dann sind es Beziehungen.
Die ID Felder (PS) sollte man auch vernünftig benennen, z.B. LehrgangID
Gibt es für Themen und Zielgruppe keine Tabellen ?
Das Lernziel könnte auch ein Kandidat für eine Tabelle sein.
Die Tabelle der Mitarbeiter "VD Vollzug" zu nennen erscheint mir auch etwas rätselhaft.
Ein Bild der Beziehungen sollte alle Tabellen zeigen. Im konkreten Fall könnte es nämlich genau auf die nicht gezeigte Tabelle anzukommen. Wie auch von Ulrich angemerkt.
Zum besseren Verständnis was ich möchte und was ich bereits darstelle:
Die linke Tabelle beinhaltet alle Lehrgänge die es gibt mit den entsprechenden Eckdaten zu jedem Lehrgang, wie bspw einer bestimmten Kategorie.
Die rechte Tabelle beinhaltet alle Mitarbeiter mit entsprechenden Eigenschaften wie Alter, Wohnort etc.
In der mittleren Tabelle ordne ich jeden Mitarbeiter den Lehrgang zu, den er besucht hat.
Das klappt insgesamt sehr gut.
Nun möchte ich folgendes darstellen:
Alle Lehrgänge einer Kategorie als Spaltenbezeichnung und alle Mitarbeiter als Zeilenbezeichnung.
Mein Problem:
Wenn auch nur ein Mitarbeiter einen Lehrgang belegt hat, erscheint die entsprechende Spalte.
Hat noch kein Mitarbeiter den Lehrgang belegt ist die Spalte nicht da.
Umgekehrt verhält es sich ebenso mit den Mitarbeitern. Wenn jemand noch keinen Lehrgang belegt hat, erscheint die Spalte nicht.
Mein Ziel: Alle Mitarbeiter und alle Lehrgänge werden angezeigt.
Zitat von: MzKlMu am Juni 25, 2025, 14:28:09Warum ist keine referentielle Integrität eingestellt?
.....
Referenzierte Integrität muss ich erstmal googeln.
Was die Themen und Zielgruppen angeht so sind die wahrscheinlich nicht für eine extra Tabelle geeignet, da es da leider keine standardisierten Bezeichnungen bei uns gibt. Sprich bei nahezu jedem Lehrgang ist es anders formuliert. Da müsste ich dann selbst Gruppen bilden, die dann allerdings nicht den offiziellen Bezeichnungen entsprächen.
Bei den Lernzielen ist es genauso.
Ich gebe zu, ich hatte seinerzeit einfach angefangen und dann wurde die Datenbank, zumindest für mich, immer komplexer. Deshalb gibt es nur sehr wenige Tabellen und die Bezeichnungen entsprechen nicht den Standards.
Ich habe mich auch immer gefragt, wann ergibt es wirklich Sinn, eine neue Tabelle zu machen und was für einen Vorteil bringt es mir.
Ich danke schon mal für eure Geduld und Nachsicht.
Hallo,
bitte das komplette Beziehungsbild zeigen, es könnte an der Tabelle liegen die man nicht sieht.
PS
Bitte keine ganzen Beiträge zitieren.
Das ist ein Bild der Back-End-Datei, wobei ich die Spind-Datei gar nicht nutze, da die Verantwortlichen doch lieber eine extra Excel-Liste nutzen.
Mehr Tabellen gibt es nicht.
Hallo Thomas,
hier ein kleines rudimentäres Beispiel, wie man so etwas machen könnte. Leider akzeptiert Jet-SQL keinen Sub-Select, so daß man die stattdessen Dlookup() verwenden muß. Zum Einstieg mit der Kreuztabelle hier nur mit den IDs.
Auch wenn du kein Programmiere bist, solltest du dich mit den Grundlagen von Datenbanken beschäftigen, denn Access ist nur ein Tool, womit du eine Datenbankanwendung entwickeln kannst im Gegensatz zu Excel, wo man auch mal auf die Schnelle ein paar Daten zusammen schieben kann.
Als Einstieg empfehle ich immer ein passenden Fachbuch, weil anders als bei Videos und Tutorials der Leser i.d.R. didaktisch an das Thema herangeführt wird.
Neben vielen anderen z.B. dieses hier:
https://www.andreasstern.de/buch/index.php (https://www.andreasstern.de/buch/index.php)
Gruß Knobbi38
ZitatReferenzierte Integrität muss ich erstmal googeln.
Was ist denn daraus geworden? Im letzten Bild sieht man davon nichts.
Das kannst du nicht vor dir herschieben, das ist Basiswissen für Db-
Entwicklung.
Zitat von: Beaker s.a. am Juni 28, 2025, 12:10:15ZitatReferenzierte Integrität muss ich erstmal googeln.
Was ist denn daraus geworden? Im letzten Bild sieht man davon nichts.
Ich vermute, dass mir da der intellektuelle Zugang fehlt. Ich habe es so verstanden, dass es letztlich um die eindeutige Zuordnung von Datensätzen geht. Eigentlich dachte ich, dass ich dies getan hätte, was aber offensichtlich nicht der Fall ist.
Wenn ich die Zeit hätte, würde ich mich gern mehr damit befassen. Warum ich mich trotz meines sehr rudimentären Könnens trotzdem rangetraut habe? Weil die bestehenden Lösungen bei uns einfach mega schlecht und frustrierend sind und es kein anderer macht.
Zitat von: knobbi38 am Juni 27, 2025, 23:10:14.
Auch wenn du kein Programmiere bist, solltest du dich mit den Grundlagen von Datenbanken beschäftigen, denn Access ist nur ein Tool, womit du eine Datenbankanwendung entwickeln kannst im Gegensatz zu Excel, wo man auch mal auf die Schnelle ein paar Daten zusammen schieben kann.
Erstmal Danke fürs Beispiel, werde ich mir alsbald möglich aufn Rechner anschauen.
Ich hatte leider den zweiten Schritt vor dem ersten gemacht. Es sollte eine simple Datenbank werden und ich hatte schnell gemerkt, dass Access ein wirklich gutes Tool ist, um das darzustellen, was wir brauchen. Das Ganze wurde immer umfangreicher und ich habe mich dann sukzessive immer mehr damit befasst und dabei auch schon gemerkt, was man alles hätte besser machen können.
Das Problem bei Makros oder Programmierungen ist, dass diese bei uns technisch nicht zugelassen sind. Ich muss also mit den Grundfunktionen von Access zurechtkommen.
Hallo,
ZitatDas Problem bei Makros oder Programmierungen ist, dass diese bei uns technisch nicht zugelassen sind. Ich muss also mit den Grundfunktionen von Access zurechtkommen.
Das kannst du gleich vergessen und so eine Einschränkung kennt man eher aus dem Office Umfeld von Word/Excel.
Vieles wird in Access nun mal in VBA programmiert und umgesetzt und wenn das nicht zugelassen ist, kommst du nicht weit. Dann ist Access das falsche Werkzeug und ich würde keine weitere Zeit mehr darauf verschwenden, denn ohne VBA wirst du deine Projekte nicht wirklich umsetzen können. Im Übrigen werden solche Regeln oft von Leuten aufgestellt, die von der Materie wenig Ahnung haben; sollen die Entscheider dir doch ein anderes Entwicklungswerk zur Verfügung stellen und dir die Schulung dafür bezahlen.
Gruß Knobbi38