Hallo zusammen,
ich benötige noch einmal eure Hilfe.
Ich arbeite weiter an einer Seminarverwaltung.
Um ein Seminar zu planen gibt es eine Tabelle Veranstaltungen in der nur die Eckdaten wie Seminarnr., Seminartyp und min sowie Max Teilnehmerzahl stehen. Dann gibt es eine weitere Tabelle in der die einzelnen Termine gespeichert werden. Diese Tabelle hat die Felder Seminarnr., Datum, Beginn, Ende, Dozent, und Raum.
Weiter gibt es eine Tabelle Dozenten und eine Tabelle wmw (wer macht was) in der den Dozenten die Seminartypen zugeordnet werden. In dieser wmw-Tabelle sind nur die Personalnr und der Seminartyp gespeichert.
Kommen wir nun zu meinem "Problem" ist wahrscheinlich keins, sondern ich seh den Wald vor lauter Bäumen nicht; bin mir auch der Meinung dass das ganze auch mal funktioniert hat :o :
Es gibt ein Unterformular zur Termineingabe. Hier ein Kombinationsfeld zur Auswahl des Dozenten.
Mit dem RowSource:
SELECT Dozenten.PersonalNr, Dozenten.[D-Nachname], Dozenten.[D-Vorname] FROM Dozenten ORDER BY Dozenten.[D-Nachname];
werden mir alle zur Verfügung stehenden Dozenten angezeigt.
Bis hier ist alles OK und kann es nachvollziehen.
Nun möchte ich das nur die Dozenten angezeigt werden, die in der Tabelle wmw dem Seminartyp des Hauptformulars zugeordnet sind angezeigt werden.
Ich habe zum testen folgende Daten verfügbar: Dozent 1 und Dozent 2 sowie Seminartyp A, B, C, D, E, F, H, I, und J und der Tabelle wmw ist Dozent 1 den Seminartypen D - J (also 6 Seminartypen) zugeordnet und Dozent 2 den Seminartypen A,B und C (also 3)
Im ersten Step habe ich dem RowSource die Tab wmw dazugegeben:
SELECT Dozenten.PersonalNr, Dozenten.[D-Nachname], Dozenten.[D-Vorname], wmw.Kurzbezeichnung FROM Dozenten INNER JOIN wmw ON Dozenten.PersonalNr = wmw.PersonalNr ORDER BY Dozenten.[D-Nachname];
Jetzt werden mir die Dozenten mehrfach angezeigt Doz1 - 6mal und Doz2 - 3 mal. Das kann ich auch noch nachvollziehen, da ja die Dozenten entsprechend oft in der Tab wmw auftauchen.
Nun habe ich im zweiten Step den Row-Source erweitert um nur die Dozenten anzuzeigen, die dem Semiartyp des Hauptformulars zugeordnet sind.
SELECT Dozenten.PersonalNr, Dozenten.[D-Nachname], Dozenten.[D-Vorname], wmw.Kurzbezeichnung FROM Dozenten INNER JOIN wmw ON Dozenten.PersonalNr=wmw.PersonalNr WHERE (((wmw.Kurzbezeichnung)=Formulare!Veranstaltungen!kurz)) ORDER BY Dozenten.[D-Nachname];
Hier passiert folgendes, was ich nicht mehr nachvollziehen kann:
Ich habe ein Seminar vom Typ A angelegt dem in der wmw-Tab nur Doz2 zugeordnet ist. Das Kombifeld zeigt mir aber Doz1 an!!!
Wo ist jetzt mein Fehler???
Nachtrag:
Nachdem ich noch weitere Testdaten eingegeben hatte, musste ich feststellen, dass das Kombifeld mir nur die Doz anzeigt, die zum Seminartyp des ersten gespeicherten Datensatz Veranstaltung passen.
Meine Lösung:
Ich hab das Kombifeld gelöscht und neu angelegt - jetzt funktioniert es
Warum kann ich nicht nachvollziehen
Hallo,
möglicherweise hast du das Formular nicht geschlossen und neu geöffnet um NACH der Änderung der Datenherkunft des Kombis ein NEUEINLESEN der Daten zu veranlassen.
Hallo Peter,
ein schließen und neuöffnen des HF hat nichts gebracht, da im HF im Prinzip nur der Wert für die Auswahleingrenzung gesetzt wird.
Wenn also das HF geöffnet wird, wird der erste DS aus der Tab Veranstaltungen angezeigt und das Kombifeld natürlich auf den Wert im HF gestützt. Daher auch die Auswahlmöglichkeit der Doz die für den Seminartyp des ersten Datensatz zugeordnet waren.
mit deinem Hinweis hätte es auch ohne Neuerstellung des Kombis geklappt. Bei der Neuerstellung hab ich dann auch die Aktualisierung gesetzt. Daher hat es dann auch funktioniert.
Hab nochmal in die Sicherheitskopie geschaut und dort fehlte tatsächlich die Aktualisierung wie ich Sie eigendlich als Standart bei Kombis setzte
BeiFocuserhalt:
Me!Kombifeld.Requery
und schon läuft es wie gewollt.
Das die Prozedur entfleucht war hatte ich übersehen oder anders ausgedrückt war das der Wald den ich vor lauter Bäumen nicht gesehen habe. ;D
Da staunt der Fachmann und der Laie wundert sich ???
Trotzdem nochmal vielen Dank