Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

2 Tabellen mit einer 3. verknüpfen

Begonnen von sailer73, März 12, 2013, 13:41:22

⏪ vorheriges - nächstes ⏩

sailer73

Hallo,
ich bin neu hier und habe gleich mal eine frag.

Ich habe 3 Tabellen, Mitglieder, Termine und Teilnahme

in der Tabelle Mitglieder stehen Mitgliederdaten, Name, Vorname, Straße , plz, etc.
In der Tabelle Termine sind Datum, Veranstaltung und Bemerkung
In der Tabelle Teilnahme möchte ich, den Namen und Vorname aus der Mitgliederdatenbank, und Datum und Veranstaltung aus der Tabelle Termine verknüpfen.
zusätzlich möchte ich ein Feld Teilnahme implementieren.

In der Tabelle Teilnahme möchte ich zu jeder Veranstaltung jedes Mitglied aufführen, damit ich sehen kann wer an welchen Veranstaltungen teilgenommen hat.
Schön wäre es, wenn ich eine Auswahl für einen Termin treffen kann und mir werden dann in Tabellenform alle MItglieder + das Feld teilnahme angezeigt wird.

Ich versuche mich gerade mal seit 2 Wochen mit Access, also absoluter Neulling. und habe leider absolut keine Idee, wie ich das hinbekomme.

Danke schonmal für Eure Hilfe.
Gruß
sailer73

DF6GL

#1
Hallo  und willkommen hier im Forum,



Erstelle zunächst die Tabellen nach den grundlegenden Erfordernissen für eine relationale DB (Normalisierung, Primär-/Fremdschlüssel, Atomisierung entspr. u. st. Links 1 und 1a, Benamsung--> reservierte Wörter vermeiden)

Die Beziehungen zwischen den Tabellen werden über die Fremd-/Primärschlüssel-Felder abgewickelt.


tblMitglieder:

MitID (Primärschlüssel, Autowert)
Mit_Nachname  (Text)
Mit_Vorname (Text)
Mit_Strasse (Text)
Mit_PLZ  (Text)
.
.


tblTermine:

TermID  (PK, Autowert)
Term_Datum (Datum/Uhrzeit)
Term_Veranstaltungsname (Text)
Term_Bemerkung (Text, evtl. Memo)
.
.


tblTeilnahmen:

TeilID (PK,Autowert)
Teil_MitID  (Zahl, Long,   Fremdschlüssel zu MitID in tblMitglieder)
Teil_TermID  (Zahl, Long, Fremdschlüssel zu TermID in tblTermine)
.
.


Zitatzusätzlich möchte ich ein Feld Teilnahme implementieren

wozu?



ZitatSchön wäre es, wenn ich eine Auswahl für einen Termin treffen kann und mir werden dann in Tabellenform alle MItglieder + das Feld teilnahme angezeigt wird.


Das ist in Folge nach Realisierung der oben st. Tabellenstruktur kein Problem.


Aber beachten:   Datenein-/ausgabe und-pflege geschehen NUR über entspr. aufgebaute Formulare und nicht direkt über die Tabellenansichten.

sailer73

Hallo,
erstmal danke für die Antwort.
Die Tabellen habe ich so angelegt.
Ich verstehe aber noch nicht, wie ich jetzt ein Formular erstellen muß, das ich die Daten aus den Tabellen Mitglieder und Termine in der Tabelle Teilnahmen speichere.

Nochmal kurz zu meinem Verständnis. Mit Fremdschlüssel sind doch die Beziehungen gemeint, oder?
Also ich gehe über Beziehungen , wähle die Tabellen aus, und Verknüpfe sie entsprechend.

Wenn ich eine Abfrage über  die Tabellen erstelle, werden mir die Daten so angezeigt,
Benutzer1, 23.03.2013, arbeitseinsatz, kästchen für teilgenommen Ja / nein
benutzer 1, 29.03.2013 , Anangeln, kästchen für teilgenommen Ja / nein
Benutzer2, 23.03.2013, arbeitseinsatz, kästchen für teilgenommen Ja / nein
benutzer 2, 29.03.2013 , Anangeln, kästchen für teilgenommen Ja / nein

das ist so erstmal gut, und wie erstelle ich ein Formular, das ich die Daten in der Tabelle Teilnahmen gespeichert bekomme.

DF6GL

Hallo,


kästchen für teilgenommen Ja / nein    ???


ist das ein Feld in tblTeilnahme?  Wenn so, dann brauchst Du das nicht.


Erstelle für die Tabellen tblMitglieder und tblTermine je ein Einzelformular.

Für Tabelle tblTeilnahmen erstelle ein Endlosformular.


Im Einzelform "frmMitglieder" wird ein UFO-Steuerelement mit Herkunftobjekt "frmTeilnahmen"  eingebaut. Die Eigenschaften "Verknüpfen von/nach"  werden auf die Schlüsselfelder gesetzt (von: Teil_MitID  , nach: MitID )



Im Endlosform "frmTeilnahmen" wird für das Feld "Teil_TermID" ein Kombifeld eingesetzt, das als Datensatzherkunft in etwa diesen SQL-String erhält:

Select TermID, Term_Veranstaltungsname,Term_Datum   from tblTermine order by Term_Datum



und bei:

Spaltenanzahl: 3
Spaltenbreiten: 0cm;4cm;2cm
gebundene Spalte: 1




wobei ich aber jetzt doch anhand der Beispieldaten Zweifel bekomme, ob die Tabellenstruktur richtig passt..   (mindestens sollte es eine weitere Tabelle geben, die den "Teilnahme-Zweck" definiert (---> "Arbeitseinsatz","Anangeln", etc)   )

sailer73

Hallo,
also wenn ich Dich richtig vestehe, dann benötige ich 4 Tabellen?

1. Tabelle Mitglieder
2. Tabelle Termine
3. Tabelle Teilnahme
4. Tabelle Terminzweck

Tabelle Mitglieder könnte ich dann so lassen.
In der Tabelle Terminzweck würde dann eine spalte mit fortlaufende Nummer + eine Spalte Terminzweck. In der Tabelle Termine kommt dann wieder in spalte, die mit  Tabelle Termnzweck und der fortlaufenden Nummer verknupfe. Dann baue ich mir ein Formular, wo ich die beiden abellen veknüpfe
Habe ich das richtig verstanden?



sailer73

Vielleicht bin ich mit meiner Denkweise über die Datenbank auch auf dem Holzweg.
Ich möchte für unseren Angelverein eine Vereinsdatenbank aufbauen, In der Datenbank sollen einmal die Mitgliederdaten aufgenommen werden. ( Tabelle Mitglieder mit Name, straße telefon etc ).Dann möchte ich unsere Termine verwalten. Als nächstes möchte ich festhalten, welches Mitglied an welchem Termin teilgnommen hat. Später möchte ich sehen, wie die Termine von den Mitgliedern angenommen worden sind. Zusätzlich möchte ich dann auch sehen welches Mitlied wie oft an den Arbeitseinsätzen ( Flora und Faunapflege) teilgenommen hat. in einem weitern schritt, möchte ich dann die Fanglisten pflegen. Starte ich mit der Datenbank überhaupt richtig.
Gruß
sailer73


DF6GL

Hallo,

Du bist nicht auf dem falschen Weg....


Wenn die Daten so zusammen hängen , wie Du es beschrieben hast, dann sollten die Tabelle so passen.


Über Auswertungen und Formulare brauchst Du Dir jetzt noch nicht den Kopf zu zerbrechen....  Die ergeben sich "von allein" , wenn die Datenbasis (Tabellenkonstruktion mit deren Beziehungen) die Realität abbilden.

Die "fortlaufende Nummer"   in dieser Tabelle ist der Primärschlüssel(wert) , der ja (sinnvollerweise) durch ein Autowertfeld erzeugt werden kann .
  " + eine Spalte Terminzweck"   ok, in diesem Feld steht eben alles(!) für was ein Mitglied überhaupt und insgesamt eingesetzt werden könnte.


Erstell erst mal die Tabelle komplett mit ihren Beziehungen und poste dann einen Screenshot vom Beziehungsfenster.

sailer73

sorry, das ich mich erst jetzt melde.
ich war das Wochenende unterwegs.

Ich zeige Dir mal per Bilder wie ich die Tabellen aufgebaut habe.
ist das soweit noch OK. ?
Gruß
sailer


[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

sieht soweit gut aus, bis auf das, dass der Beziehungstyp auf Typ 1  ("in beiden Tabellen gleich ") gesetzt werden sollte (muss).


Möglicherweise sind  (je nach Aufgabenstellung/Anforderung)  in "tbl_Teilnahmen" noch weitere beschreibende Attribute (Felder) erforderlich..

sailer73

Hallo,
erstmal danke danke danke für deine Hilfe.

Die ersten Formulare habe ich auch schon gebaut. 
das Funktioniert auch schon super.
Wenn ich ein Datum im Hauptformular auswähle, dann kann ich im Unterformular meine Mitglieder auswählen. Es wird auch alles sauber in die Tabelle TBl_teilnahmen gespeichert.
Aber bei ein problem stehe ich noch auf der Leitung

Ich habe die Tabellen tbl_Termine und tbl_terminZweck. Die Tabellen sind wie oben beschrieben verknüpft.
Wenn ich jetzt in einen Formular ein Kombifeld in tbl_Termine nach dem Datum selektieren  möchte, dann möchte ich gerne in einem weiteren Feld, nach erfolgter auswahl des Datums, den Termin sehen. Ich sehe in meinem zusätzlichen Feld nur die TerminZeckID ( Zahl).
Wie gehe ich da am  besten vor?

Gruß
sailer

DF6GL

Hallo,


am besten lädst Du die DB hier hoch und beschreibst anhand der realen Objektnamen, wo was wann passieren soll..


sailer73

Hallo, hier ist die DB.

In dem Formular frm_Termine kann man in der obersten Zeile ein Datum auswählen.
Ich möchte gerne neben dem Datum ein Feld haben, wo man passend zu dem Datum den termin sehen kann.
z.b. 23.03.2013 sollen daneben z.b. arbeitseinsatz stehen.

In dem Formular frm_Mitglieder möchte ich neben dem Termin im UFO auch gerne den Termin sehen.

Sind die Formulare so richtig aufgebaut?

Gruß
Sailer

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

anbei...

Geänderte Benamsungen , entfernte Tabellen-Nachschlagefelder, modifizierte Formulare (nur Mitglieder + Unterform:  Makro entfernt, Kombifeld-Abfragen und Formateinstellungen)


Die Formulare frm_Termine und frm_TerminTeilnahmen kannst Du selbst anpassen    ;-)

[Anhang gelöscht durch Administrator]