Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Mr. Ahnungslos am November 09, 2013, 11:55:18

Titel: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 09, 2013, 11:55:18
Hallo,

ich würde gerne zukünftige Meetings sinnvoll planen und die Inhalte der Themenpunkte nachhalten können. Im Endzustand sollen dann die Agenda, das Protokoll etc. als Bericht erstellt werden.

Angefangen habe ich nun mit folgenden Tabellen:

1. Teams
2. Mitarbeiter
3. Meetings
4. Toppics

Die einzelnen Tabellen sollen hierarchisch aufgebaut sein, also die Mitarbeiter werden den Teams zugeordnet, die Meetings werden ebenso den Teams zugeordnet und die Toppics werden den Meetings zugeordnet.

Bei Neuanlage eines Meetings möchte ich, dass ich im Hauptformular angeben kann, welches Team sich zum Meeting trifft. Darauf stelle ich mir vor, dass in einem Unterformular alle Mitarbeiter eines Teams angezeigt werden (soweit alles bereits realisiert und funktioniert). Jetzt meine aktuelle Herausforderung: Die Mitarbeiterliste im Unterformular soll nun einen Button oder ein Kreuzchen enthalten, mit dem ich direkt festlegen kann, ob der jeweilige Mitarbeiter am Meeting teilgenommen hat. Ich habe mir bislang gedacht, dass ich hierfür eine weitere Tabelle "Meetingteilnahmen" brauche, die dann mit jedem Klick auf "teilgenommen" einen neuen Datensatz erstellt aus Meeting-ID" des Hauptformulars sowie "Mitarbeiter-ID" des Unterformulars. Wenn man im Nachhinein dann auf "nicht teilgenommen" klickt, sollte auch der Datensatz aus der Verknüpfungstabelle wieder verschwinden.

Wie kann ich das realisieren, oder habe ich einen grundsätzlichen Denkfehler?

Danke für Eure Hilfe

Michael
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Stapi am November 09, 2013, 13:18:45
Hallo

Ich verstehe dein Ziel und daraus auch die nötigen Aufgaben.
Aber laut deiner Beschreibung kann ich mir dein Ist Zustand deiner heituigen Beziehungen unterhalb der Tabellen nicht so richtig Vorstellen.
Ist es möglich das Beziehungsfenster hier hoch zuladen?
Um zu sehen ist der Aufbau richtig oder fehlt etaws.
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 09, 2013, 14:06:35
Ich hoffe das hier hilft weiter. (Siehe Anhänge)

Danke
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: database am November 09, 2013, 14:44:23
Hallo Michael,

vermeide Umlaute in Feldbezeichnungen, verwende keine reservierten Worte als Spaltenbezeichnung (Datum)
Benenne die PK der Tabellen mit einem Präfix aus dem Tabellennamen (Teilnehmer_ID, Meeting_ID, ....) und die Fremdschlüssel analog Teilnehmer_FK, Meeting_FK, ...
und behalte diese Bezeichnungen für alle Beziehungen bei, nicht in jeder beteiligten Tabelle den Fremdschüssel anders benennen.

Wenn ein Mitarbeiter in mehreren Teams Mitglied sein kann benötigst du eine 'Zwischentabelle' ... MitarbeiteTeams mit der Mitarbeiter_ID und der Team_ID als Spalten.
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 09, 2013, 17:22:44
Hallo Peter,

Vielen Dank für die grundsätzlichen Hinweise, werde ich bedenken. Kannst Du mir denn auch bei meiner konkreten Fragestellung weiterhelfen?

Ein Mitarbeiter kann immer nur in einem Team sein, daher brauche ich hier keine Zwischentabelle, aber wie bekomme ich es hin, dass mir über ein Formular mit mehreren Elementen in Listenform nicht nur die Mitarbeiter aus dem jeweiligen Team angezeigt werden, sondern ich auch deren Teilnahme am Meeting mittels Button oder Kreuzchen o.ä. festlegen kann?

Danke
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Stapi am November 09, 2013, 17:36:45
Hallo

Laut deines Datenmodel, trägst du ein Meeting mit Datum und Inhalt ein.
Über die Tabelle Meetingteilnahme trägst du nur die ID der Mitarbeiter ein die an dem Tag am dem Meeting teilgenommen haben, somit entfällt das Ja/Nein Kästchen aus meiner sicht.
Anhand einer Afrage läst sich nun ganz einfach ermitteln an welchen Datum welche Teilnehmer an welchen Meeting teilgenommen haben
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 09, 2013, 17:57:18
Richtig, es geht mir aber darum wie die Tabelle "Meetingteilnahme" mit Leben gefüllt wird. angenommen ich habe 10 Teams à 10 Mitarbeiter, dann wähle ich bei der Erstellung eines Meetings im Hauptformular z.B. Team 6 aus und bekomme die 10 Mitarbeiter aus Team 6 angezeigt (im Unterformular). Nun soll hinter jedem Mitarbeiter eine Auswahlmöglichkeit erscheinen, die dann einen Datensatz in der Tabelle "Meetingteilnahme" bestehend aus der Meeting-ID sowie aus der Mitarbeiter-ID erstellt. Genauso soll der Datensatz in der Tabelle wieder gelöscht werden, wenn die Auswahlmöglichkeit wieder deaktiviert wird.

Bin dringend auf der Suche nach einem Hinweis wie ich das realisieren kann.

Danke, Michael
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Stapi am November 09, 2013, 18:05:37
Hallo Michael

Ich persönlich würde nicht per Button Grundsätzlich alle Teilnehmer in die Meetingteilnahme eintragen, sondern über ein Kombifeld im Formular gefiltert nach Teams die Teilnehmer auswählen und im UFO eintragen.
Grundsätzlich werden allen Daten über ein Entsprechendes Formular in die Tabellen eingetragen
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: database am November 09, 2013, 18:39:21
Hallo Michael,
ZitatEin Mitarbeiter kann immer nur in einem Team sein
...und das gilt bei einem Mitarbeiter vom Firmenein- bis Firmenaustritt?
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 09, 2013, 19:13:52
Zitat von: Stapi am November 09, 2013, 18:05:37
Ich persönlich würde nicht per Button Grundsätzlich alle Teilnehmer in die Meetingteilnahme eintragen, sondern über ein Kombifeld im Formular gefiltert nach Teams die Teilnehmer auswählen und im UFO eintragen.

Leute, bitte lest zuerst genau die Problemstellung! Bislang habe ich noch keine einzige hilfreiche Antwort auf meine Anfrage erhalten, und das obwohl hier in diesem Forum nachweislich die geballte Kompetenz unterwegs ist.

Wer sagt denn was davon, dass grundsätzlich alle Mitarbeiter eines Teams als Teilnehmer eingetragen werden sollen???

Nochmal: das UFO ist ein Formular in Tabellenform mit allen Mitarbeitern des jeweiligen Teams, und dort soll deklariert werden, ob der jeweilige Mitarbeiter an- oder abwesend war. Dies soll dann in der Tabelle "Meetingteilnahmen" als Datensatz installiert werden.

Bitte helft mir einfach bei dem, was ich realisieren möchte, auch wenn die Hinweise gut gemeint sind.

Michael
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 09, 2013, 19:28:43
Zitat von: database am November 09, 2013, 18:39:21
...und das gilt bei einem Mitarbeiter vom Firmenein- bis Firmenaustritt?

Natürlich nicht, aber wofür ist das wichtig? Mal angenommen ein Mitarbeiter wechselt, so würde er doch beim nächsten Teammeeting in der Liste der Teammitglieder erscheinen. Mit dem Klick auf den Teilnahmebutton würde dann in der Meetingteilnahme-Tabelle der entsprechende Datensatz erstellt werden (neues Meeting-neuer Mitarbeiter). Die alten Einträge wären hiervon unberührt, so dass es ebenfalls noch die alten Einträge vor dem Teamwechsel gibt.
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: MzKlMu am November 09, 2013, 19:41:20
Hallo,
ZitatNatürlich nicht, aber wofür ist das wichtig?
weil davon das Datenmodell abhängt. Und das ist dann falsch. Wenn Du in der jetzigen Mitarbeitertabelle das Team wechselst in dem Du da einfach ein anderes Team verknüpfst sind ja die alten Teamzusammenstellungen verloren. Du benötigst also eine weitere Tabelle zur Bildung der Teamzusammenstellungen. In dieser Tabelle wird der Primärschlüssel des Mitarbeiters und der Primärschlüssel des Teams jeweils als Fremdschlüssel gespeichert. Nur mit dieser Tabelle kannst Du Dein Vorhaben realisieren.

ZitatBislang habe ich noch keine einzige hilfreiche Antwort auf meine Anfrage erhalten,
das ist Deine Meinung, aber da irrst Du. Das Datenmodell muss erst klar und richtig sein, damit die Formulare überhaupt richtig gestaltet werden können. Mit solchen Aussagen wirst Du bald auf die die geballte Kompetenz des Forums verzichten müssen. Du hast ja auch explizit nach Denkfehlern gefragt.
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: DF6GL am November 09, 2013, 19:56:32
Hallo,

wirf die Formularkonstruktion in die Tonne.  Bevor die Tabellenverhältnisse und der Workflow  nicht klar sind, ist es sinnfrei, sich über Formulare Gedanken zu machen.



Entferne die Beziehung zwischen Meetings und Teams.

<Edit>
PS:  Entferne die Beziehung zwischen Teams und Mitarbeiter. Erzeuge weitere Tabelle "TeamMitarbeiter", die die einem Team zugehörenden MAs definiert. (Mit Beziehung zu Teams und  Mitarbeiter)
</Edit>

Füge ein Markerfeld (Ja/Nein-Feld) in TeamMitarbeiter ein, das für die Übertragung der MAs in Meetingteilnahmen verwendet wird.


Baue ein HF mit Basis zu Meetings und ein darin stehenden UFO mit Basis zu Mettingteilnahmen. Im HF steht zusätzlich ein Button "Meetingteilnehmer definieren".


Baue ein HF (frmTeams) mit Datenherkunft Teams und darin ein UFO mit Basis zu TeamMitarbeiter.


Bei Klick auf  "Meetingteilnehmer definieren" wird frmTeams geöffnet und ein akt. Team gefiltert. Mit dem Markerfeld werden die akt. teilnehmenden MAs definiert und diese (deren ID) anschliessend per Anfügeabfrage in Meetingteilnahmen eingefügt.

(Vorsichtsmaßnahmen wie Vermeidung mehrfacher Teilnehmer-Einträge sind hier nicht betrachtet)

Das Ganze kann man auch so ausdrücken: Aus einer Vorlage(liste) von Team-Mitarbeitern werden daraus ausgewählte MAs in Meetingteilnahme übernommen. Es steht weiterhin frei, irgendwelche anderen MAs (z. B. als "Gast"- Teilnehmer) in die Meetingteilnahmen zu übernehmen, wenn das "Teilnehmer"-Feld als Kombifeld zur Auswahl einer MAs ausgeführt wird.




Genügend an geballter Kompetenz?   >:(
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Stapi am November 09, 2013, 19:58:00
Hallo
ZitatWer sagt denn was davon, dass grundsätzlich alle Mitarbeiter eines Teams als Teilnehmer eingetragen werden sollen???

Und warum willst du im Nachgang Teilnehmer Löschen wenn sie nicht Anwesend waren. Aus diser Beschreibung ziehe ich das alle Teilnehmer Eingetragen werden schon im Vorfeld.
Du solltest uns dann auch den richtigen Ablauf  Mitteilen, nach deiner Aussage wird ein Meeting angesetzt mit einem bestimmten Team soweit gut, nun möchtest im Nachgang Teilnehmer löschen die nicht Anwesend waren, im Normalfall werden nur die Teilnehmer eingetragen die auch Anwesend sind.
ZitatBitte helft mir einfach bei dem, was ich realisieren möchte, auch wenn die Hinweise gut gemeint sind
Das machen wir doch schon die ganze Zeit. ;)
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: database am November 09, 2013, 20:58:09
Hi,

auch wenn du die Notwendigkeit einer klaren Datendefinition nicht ganz wahr haben willst ...

Im Anhang findest ein kleines Beispiel als Ausschnitt deiner DB.
Enthalten ist ein Formular zum Ein- und Austrag von Teammitgliedern zu/von einem Meeting.

Vielleicht habe ich deine Fragestellung aufmerksam genug gelesen ...   ::)
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 10, 2013, 11:18:50
 :D :D :D

Danke! Das war genau das was ich gesucht habe. Den VBA-Code hätte ich alleine nicht hinbekommen, das hat mir sehr weitergeholfen.

Michael
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: database am November 10, 2013, 12:03:10
Hi,

habe nur vergessen zu erwähnen, dass in beiden Listenfeldern die Mehrfachauswahl möglich ist!
Hier die Variante mit Meetinggästen... ;-)
Titel: Re: Teilnehmerliste für Meeting erstellen
Beitrag von: Mr. Ahnungslos am November 19, 2013, 20:21:14
Hallo Database,

Du hattest mir zuletzt hier super weiterhelfen können. Nun funktioniert alles und ich bin nur am Feinschliff und an optischen Verschönerungen. Kannst Du mir noch sagen, wie ich den u.g. Code anpassen muss, damit die Liste nach tblMitarbeiter.Nachname alphabetisch sortiert wird?

   Me.lstGaeste.RowSource = "SELECT tblMitarbeiter.Mitarbeiter_ID, tblMitarbeiter.Nachname & ', ' & tblMitarbeiter.Vorname " & _
                             "FROM tblMitarbeiter INNER JOIN tblMitarbeiterTeam ON tblMitarbeiter.Mitarbeiter_ID = tblMitarbeiterTeam.Mitarbeiter_FK " & _
                             "WHERE tblMitarbeiter.Mitarbeiter_ID Not In (SELECT Mitarbeiter_FK FROM tblMeetingTeilnahme WHERE Meeting_FK =" & Me.cboMeeting & ")" & _
                             "AND tblMitarbeiterTeam.Team_FK<>" & Me.cboMeeting.Column(2)


Danke, Michael