Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: CptObvious am September 09, 2011, 13:05:04

Titel: Berichterstellung aus kombinierten Tabellen
Beitrag von: CptObvious am September 09, 2011, 13:05:04
Hallo Leute.

Ich müsste einen Bericht erstellen, der Daten aus mehreren Tabellen nimmt.

Zum einen wäre da die Tabelle "tbl_Stelle", die einzelne Berufe (ID, Name, Aufgabe_ID) beinhaltet. Nehmen wir als Beispiel den Redakteur.
Dann habe ich eine weitere Tabelle, tbl_Aufgabe_1, für alle möglichen Aufgaben verschiedenster Berufe. Sie beinhaltet:
Zum Beispiel News verfassen.

Die jeweiligen Aufgaben haben noch einen etwas längeren Text/ eine Erklärung. Das mache ich mit einer dritten und letzten Tabelle, tbl_Aufgabe_2:
Der Text dazu wäre: Recherche/ Bildersammlung + Layout + Zitate + Verfassung der News.

Oder so was in der Art. :p


Aufgabe_ID aus der tbl_Stelle steht n:1 mit Aufgabe_2_ID aus tbl_Aufgabe_2.
Aufgabe_ID aus der tbl_Aufgabe_2 steht n:1 mit Aufgabe_ID aus tbl_Aufgabe_1.



Jetzt zur Erklärung:
Ich muss das so handhaben, dass man einen Beruf auswählen kann, ihm Aufgaben zuteilen kann und daraus einen Bericht erstellen kann, der in etwa so aussehen sollte:

Beruf: Redakteur
       Aufgabe 1: News
              1.1 Recherche
              1.2 Zitate
              1.3 Bilder
       Aufgabe 2: News-Pflege
              2.1 Alte News ins Archiv verschieben
              2.2 Bilder aktualisieren
              2.3 Auf Fehler prüfen



Die Erklärungen habe ich so in Beziehung gesetzt, dass es passen sollte.

Ich hätte das gerne so :p:
Man kann aus einem Kombinationsfeld auswählen, welchen Beruf man selektieren möchte. Dann soll ausgewählt werden können, welchen "Oberpunkt" man möchte, z. B. s.o. News pflegen. Dann soll man wählen können, welche Unterpunkte er zu machen hat. -> Berichterstellung wie oben.


Wäre da so was möglich? Wie aufwendig ist das? Und die wichtigste Frage: Wie geht das, wenns funktioniert? :)
Oder kann man es noch ganz anders und einfach lösen?

Danke schonmal im voraus.


Grüße Obvious
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: Jonny am September 09, 2011, 13:12:29
Hallo,
gehen tut fast alles und dein Problem läßt sich sicherlich auch lösen.
Wichtig wäre zuerst das Formular, der Bericht kommt zum Schluß.
Damit das Form aber überhaupt erstellt werden kann mußt du erstmal erklären wie deine Tabellen
verknüpft sind (Primärkey und Fremdkeys)

Gruß

Johann
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: database am September 09, 2011, 13:36:07
Hallo,

deiner Schilderung ist ein Datenmodell zu entnehmen, dass nicht ganz passt.

Die Tabelle tblStelle darf keinen Fremdschlüssel einer Aufgabe enthalten!
Vielmehr müssen die Aufgaben mit der Stelle in Beziehung stehen und zwar mittels Zwischentabelle da für eine Stelle mehrere Aufgaben definiert werden können.
Jede Kombination Stelle/Aufgabe benötigt dann einen Bezug zu Tätigkeiten - hier ebenfalls über eine Zwischentabelle da für jede Kombination Stelle/Aufgabe mehrere Tätigkeiten definert werden können.
Das bedeutet, dassw du mit tblStelle, tblAufgaben, tblTaetigkeiten, tblStelleAufgaben und tblAufgabenTaetigkeiten das Auslangen finden müsstest.
Die Aufteilung der Tabellen in Aufgabe1 und Aufgabe2 ist einer Denormalisierung des Datenmodells gleichzusetzen und daher zu unterlassen.

Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: CptObvious am September 09, 2011, 14:15:09
Hallo,

erstmal danke für die zügigen Antworten. :)

http(:)//img600(.)imageshack(.)us/img600/1668/xycp(.)jpg
Aufgabe_ID bei tbl_Stelle habe ich erstellt, weil ich sonst keinen Bericht mit dem Assisstenten hätte erstellen können.


Man wählt zuerst den Beruf, dann die Aufgabe_ID von tbl_Aufgabe_1. Also den Oberpunkt "News". Dann aktualisiert sich ein weiteres Feld, das seine Informationen von Aufgabe_2_Text bezieht. Dort stehen dann die Unterpunkte von "News". Da kann man dann entweder >=1 auswählen. Wenn man den Oberpunkt zu "News pflegen" ändert, soll sich das untere Feld wieder aktualisieren und dann die Unterpunkte von "News pflegen" anzeigen, sodass man da wieder was auswählen kann. Und das ganze geht so lange weiter, wie viele Oberpunkte es halt gibt, oder man auswählen möchte.

@database, die Aufgaben sind aber unabhängig vom Beruf.

Ich habe eine Matrix zur Veranschaulichung erstellt:

http(:)//img710(.) imageshack(.)us/img710/1935/asdacnp(.)jpg
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: database am September 09, 2011, 14:30:28
Hallo,

ZitatAufgabe_ID bei tbl_Stelle habe ich erstellt, weil ich sonst keinen Bericht mit dem Assisstenten hätte erstellen können
Wenn das Datenmodell stimmig ist geht das schon - mit Sicherheit.
Wie gesagt - das Datenmodell ist nicht richtig aufgebaut.

Zitatdie Aufgaben sind aber unabhängig vom Beruf.
Stimmt, daher habe ich auch die Lösung über die Zwischentabelle vorgeschlagen.
Damit hast du ein Tabelle zur Verfügung, in der du JEDEN Beruf mit JEDER beliebigen Aufgabe kombinieren kannst.
Die Beziehung zwischen Beruf und Aufgabe besteht dann ausschließlich nach deiner Auswahl - was nichts an der Beziehung
der beteiligten Tabellen ändert, da besteht technisch gesehen schon ein großer Unterschied.

Dass du abhängige Kombifelder verwenden willst ist ja gut und schön und überhaupt gar nicht verwerflich.
Damit das auch funktioniert muss das Datenmodell nicht extra denormalisiert werden sondern die Schlüsselspalten an der richtigen Stelle existieren.

Wenn du Bilder hochladen willst, solltest du dich als Benutzer des Forums registrieren - das geht schnell und kostet nichts.
Du ersparst uns dadurch auch nicht funktionierende Links und die lästigen Downloadpages  ;)
Ausserdem hast du durch die Registrierung Zugriff auf alle Ressourchen des Forums - auch kein Fehler  ;D
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: CptObvious am September 16, 2011, 14:37:11
http://img600.imageshack.us/img600/1668/xycp.jpg
http://img710.imageshack.us/img710/1935/asdacnp.jpg


Hallo. :)
Da bin ich wieder und das registriert.

Habe oben nochmal die Links gepostet.

@database, kannst du mir erklären wieso ich 5 Tabellen brauche?
tbl_Stelle <- ID und Berufname, oder?
tbl_Aufgabe <- Aufgaben ID und Aufgabenname, wie oben?
tbl_Tätigkeiten <- Erklärung ID und Erklärung-Text
Diese 3 sind mir klar, nur wozu brauche ich tbl_StelleAufgaben und tbl_AufgabenTätigkeiten?

Wie setze ich die Beziehungen?


Tut mir Leid, dass ich dir das so aufdringe, aber ich bin jetzt nicht so der Access pro. :/
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: database am September 16, 2011, 18:03:19
Hallo,

wie gesagt ... als registrierter Benutzer kannst du Bilder in den erlaubten Formaten hier direkt im Forum hochladen und würdest uns den Zugriff auf irgendwelche Up-/Downloadpages ersparen.

Zitattbl_Tätigkeiten <- Erklärung ID und Erklärung-Text
Warum nicht Taetigkeit_ID und TaetigkeitBezeichnung ?
IN SPALTENNAMEN UNBEDINGT SONDERZEICHEN, UMLAUTE, RESEVIERTE WÖRTER UND LEERZEICHEN VERMEIDEN! Ein Minus-Zeichen ist ein Sonderzeichen
ZitatDiese 3 sind mir klar, nur wozu brauche ich tbl_StelleAufgaben und tbl_AufgabenTätigkeiten
Da es m.E. sein KÖNNTE, dass zu verschiedenen Stellen gleiche Aufgaben existieren und unterschiedlichen Aufgaben gleiche Tätigkeiten zuordenbar sind, stellt dieses so genannte m:n - Beziehungen dar.
Da man mit solchen Beziehungen nicht arbeiten kann, muss eine m:n - Beziehung in 2x 1:n aufgelöst werden.

Die Tabellen würden für diese Aufgabe dann wie folgt aufgebaut sein:

tbl_StelleAufgabe
-----------------------
StAufg_ID        AutoWert ----> Primärschlüssel (optional)
Stelle_F           Zahl / Long Integer  ----> Fremdschlüssel zur tbl_Stelle
Aufgabe_F       Zahl / Long Integer  ----> Fremdschlüssel zur tbl_Aufgabe


tbl_AufgabeTaetigkeit
----------------------------
AufTaet_ID       AutoWert  ----> Primärschlüssel (optional)
Aufgabe_F        Zahl / Long Integer  ----> Fremdschlüssel zur Tabelle tbl_Aufgabe
Taetigkeit_F     Zahl / Long Integer   ----> Fremdschlüssel zur Tabelle tbl_Taetigkeit


Da ich nun davon ausgehe, dass du mit relationalem Datenbankdesign nicht sonderlich vertraut bist (was ja keine Schande darstellt!) empfehle ich dir hierzu:

http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Grundlagen_des_Datenbank-Designs (http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Grundlagen_des_Datenbank-Designs)

sowie die Links #1 und #1a in der Signatur von DF6GL eingehend durchzuackern!

HTH
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: CptObvious am Oktober 07, 2011, 12:36:49
Hallo,

danke database, du warst eine riesen Hilfe.

Hab jetzt aber noch weitere Fragen :p

Ist es möglich, unter dem Formular einen Button zu erstellen, der aus dem im Formular ausgewählten, einen Bericht erstellt? Möglichst ohne das selbst in vb zu schreiben.
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: database am Oktober 07, 2011, 21:06:40
Hallo,

ZitatMöglichst ohne das selbst in vb zu schreiben
Es gibt Mittel und Wege - mit Makros, wovon ich aber nur abraten kann.

Ich würde mich eher dahinterklemmen und mich mit VBA zumindest den Grundlagen auseinandersetzen.
Um mit Access wirklich effizient entwickeln zu können kommst du du früher oder später ohne VBA nicht aus.
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: CptObvious am Oktober 14, 2011, 11:58:58
Hallo, ich kenn mich relativ gut mit C und PHP aus, denke dass ich das irgendwie hinbekomme.

Kennst du eine Seite, die halbwegs so ein Thema anspricht, oder könntest du mir eine Hilfestellung bieten, bitte?



Riesen danke nochmal.  :D
Titel: Re: Berichterstellung aus kombinierten Tabellen
Beitrag von: database am Oktober 15, 2011, 11:41:06
Hallo,

sieh mal in den Links #2 und #4 in meiner Signatur nach ;)