Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Haupt- und Unterformular

Begonnen von Mictit1966, November 16, 2014, 16:31:24

⏪ vorheriges - nächstes ⏩

Mictit1966

hallo Forumsmitglieder, habe schon alle Google-Seiten durchgelesen und finde keine Lösung.
Ich habe eine Vereinsmitglieder-DB geschrieben und möchte ein Haupt- und Unterformular bauen, welches Beiträge erfasst.
Habe 3 Tabellen: tblMitglieder, tblMannschaften und tblBeiträge alle über ID in 1:n
Jetzt möchte ich ein Beitragsformular entwerfen in dem mir jeweils nur die Mitglieder einer Mannschaft angezeigt werden. Ich hatte an Haupt- und Unterformular gedacht, im Haupt ein Kombi-Feld steht und Unterformular(Beiträge) nur die Mitglieder angezeigt werden, die zur ausgewählten Mannschaft gehören. und nicht alle 280 Mitglieder. Wer kann mir da helfen? War ich verständlich?

DF6GL

Hallo,

beschreibe

"tblMitglieder, tblMannschaften und tblBeiträge alle über ID in 1:n"

genauer..

(Primärschlüssel-Felder, Fremdschlüsselfelder, (inhaltliche) Bedeutung der Tabellen, für was wird der Beitrag erhoben: Mitgliedsbeitrag, Mannschaftsteilnahme-Beitrag, oder....)

Mictit1966

Hallo  DF6GL, Ich habe mal vier GIF-Dateien angehängt, die sich vermutlich selbst erklären, Der Beitrag ist ein Zusatzbeitrag den alle Mitglieder einmal jährlich zahlen müssen, Neu-Mitglieder ab August nur die Hälfte.
Ich stehe vor der Aufgabe die gesamten Beiträge einzeln zu erfassen, jeder Mannschaftleiter bringt mir eine Liste mit den Beiträgen und ich muss sie dann in der DB den Mitgliedern zuordnen, damit ich nicht alle 280 Mitglieder einzeln durchsuchen muß würde ich gern die Vorausauswahl über die Mannschften machen.
Danke

Mictit1966

Daran erkennt man, dass ich noch nicht viel Erfahrungen habe mit Access-o-mania: jetzt aber die fehlenden 3 Bilder

database

Hallo,

soweit aus deinen Graphiken erkennbar ist das Datenmodell mit Fehlern behaftet!
Keine Normalisierung, undefinierte Beziehungen, Sonderzeichen in den Spaltenbezeichnungen und Tabellennamen,
nicht benötigte Tabellen (z.B. 'Ein-Austritt'), Abfragen haben im Beziehungsfenster nichts zu suchen,
Anlagefelder - schönes neues Feature aber eher unbrauchbar, uneinheitliche Tabellenbezeichnungen, ...

Da solltest du zu aller erst ansetzen um nicht Gefahr zu laufen dein Daten in ein 'chaotisches System' zu verfrachten.
Das führt in der Regel recht schnell zu Problemen!

Mictit1966

Hallo Database,
also die angemerkten Dinge habe ich in mühevoller Kleinarbeit beseitigt. Aber die Lösung meines Problems stellt das nicht dar. Wie geht es jetzt weiter?
Ich bin für jede Hilfe dankbar.


database

Hallo,

"...die angemerkten Dinge habe ich in mühevoller Kleinarbeit beseitigt..."

Du erlaubst mir ein gesundes Maß an Skepsis - in der kurzen Zeit  ;)

Grundsätzlich ist dein Problem so zu lösen, dass du ein Hauptformular basierend auf der Tabelle 'tblMannschaften' erstellst und auf diesem ein Unterformular welches auf der Tabelle tblMitglieder aufsetzt.
Die beiden Formulare sind über den PK von tblMannschaften und dem dazugehörigen FK in der Tabelle 'tblMitgleider' verbunden. Dadurch bekommst du die Möglichkeit für jede angezeigte Mannschaft die passenden Mitglieder im Unterformular darzustellen.
Weiter gäbe es nun die Möglichkeit mittels eines weiteren Unterformulars welches auf der Tabelle 'tblBeiträge' aufsetzt die Beiträge jedes Mitglieds anzuzeigen und ggf. einen neuen Datensatz in der Tabelle 'tblBeitraege' zu erzeugen.
Im einfachsten Fall sind die beiden Unterformulare per PK aus 'tblMitgleider' und FK aus 'tblBeitraege' verbunden.

Die Aktualisierung der dargestellten Daten in den Unterformularen erfolgt beim Datensatzwechsel - also mit dem Ereignis 'Beim Anzeigen' der Formulare

Mictit1966

Also, ich habe undefinierte Beziehungen entsorgt, Sonderzeichen und Umlaute ausgetauscht und unnötige Tabellen ganz entfernt. Was die Normalisierung betrifft stehe ich auf dem Schlauch bin eben Autodidakt und noch im Anfänger-Fortgeschritten-Status (mehr Anfänger).
Deine Anleitung habe ich versucht nachzuvollziehen, ist mir aber nicht gelungen. Die Datenfelder der Mitglieder bleiben leer und sind nicht ausfüllbar.
Vielleicht sollte ich noch erwähnen, dass ich Office2013 verwende.

DF6GL

Hallo, 

bevor die erwähnten Beziehungen noch nicht korrekt und vollständig bestehen, ist es müßig, Formulare aufzubauen.

Zeige demzufolge als Screenshot den momentanen Zustand der DB.

Tipp:   Ordne die Tabellen im Beziehungsfenster "spaltenweise" so an, dass die jeweiligen 1-Tabellen immer links der damit verbundenen n-Tabelle(n) liegen. Dadurch werden die Abhängigkeiten der Daten wesentlich übersichtlicher gezeigt und "Fehlverbindungen" offensichtlicher.

Mictit1966

Hallo,
im Anhabg die geordneten neuen Beziehungen. Ich hoffe ich habe richtig sortiert.Danke


DF6GL

Hallo,

ok, so ist es besser angeordnet und dazu gleich ein paar Kommentare:

-- Feldwiederholungen (z. B: mglNachname,etc.) in den n-Tabellen ist falsch/überflüssig. Es reicht ein (Fremdschlüssel-) Feld für den Primärschlüsselwert aus der jeweiligen 1-Tabelle.

-- Ein Anlagefeld als Ersatz für eine Detailtabelle ist eher nicht zielführend.

-- Für was ist tblZeiten zu verwenden?  Soll für ein Mitglied dessen mehrmalige Ein-Und Austritte (historisch) nachvollziehbar sein?

-- kann ein Mitglied nur immer einer Mannschaft angehören und wäre dies zeitlich festgeschrieben?


-- Was bedeutet "tblBeitrag.BeiMannschaft"?


-- wird ein Training nur nach dem Datum seines Stattfindens gekennzeichnet oder gibt  es auch verschiedene Trainingsarten, an denen nur bestimmte Mitglieder teilnehmen (können/dürfen)?

-- Was soll tblSpieleinteilung darstellen?  Sind das "Spiele", die nur nach ihrem Veranstaltungsdatum gekennzeichnet werden?

-- Was bedeutet "tblSpieleinteilung.Spielt" ?
-- tblMannschaft muss m. E. an tblSpieleinteilung angebunden werden.

-- es wären noch weitere Detail-Tabellen und Änderungen an der Beziehungen (Datenabhängigkeiten) erforderlich.


Um Beiträge für die akt. DB-Tabellen-Konstellation eingeben zu können, wäre ein Hauptform mit Datenherkunft zu tblMitglieder nutzbar, das ein UFO-Steuerelement enthält, das wiederum ein Endlos-Form mit Datenherkunft zu tblBeitrag anzeigt und über die Schlüsselfelder "Mitgliedernummer" und "BeiMglRefID" verknüpft.

Mictit1966

Hallo DF6GL, database und Community,

ich habe die DB nochmal ganz von vorn aufgebaut, kostet zwar viel Arbeit die Daten wieder einzugeben, aber vielleichtlohnt es sich von vorn anzufangen.

Mein oben beschriebenes Problem bekam ich nicht gelöst. Vielleicht könnt ihr mir nun besser helfen.
Danke
Michael

MaggieMay

Hi,
Zitatkostet zwar viel Arbeit die Daten wieder einzugeben
das sollte sich mit Abfragen lösen lassen.
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

ZitatMein oben beschriebenes Problem bekam ich nicht gelöst. Vielleicht könnt ihr mir nun besser helfen.

Und wo liegt nun das Problem? Den Formular-Aufbau hab ich schon beschrieben..

Mictit1966

Hallo,
ZitatUm Beiträge für die akt. DB-Tabellen-Konstellation eingeben zu können, wäre ein Hauptform mit Datenherkunft zu tblMitglieder nutzbar, das ein UFO-Steuerelement enthält, das wiederum ein Endlos-Form mit Datenherkunft zu tblBeitrag anzeigt und über die Schlüsselfelder "Mitgliedernummer" und "BeiMglRefID" verknüpft.
Das habe ich versucht, so gelingt mir das aber nicht. Ich muss da immer noch alle 280 Mitglieder durchklicken und die Beiträge eingeben.Ich möchte aber über die Mannschaftsbezeichnungen erst filtern und dann nur die zugehörigen Mitglieder finden. Da die Mannschaftslisten mit den Beiträgen als Fresszettel bei mir abgeben werden scheint mir dieser Weg der einfachere aber die Programmierung überfordert mich.

Zitatdas sollte sich mit Abfragen lösen lassen.
Das schaffe ich vielleicht sogar, allerdings sind die Tabellen jetzt andere.
DAnke für die Hilfe, ich bin froh dass es Euch gibt.