Hallo Wolfgang,
vielen Dank, dass Du Dich in mein Problem reindenkst. Leider klappt es so eben nicht, ich versuch mal, es ein bisserl besser zu beschreiben:
Die Paare sind dabei immer eindeutig, aber natürlich kann eine
andere Person für denselben Zeitraum auch einen Eintrag haben.
logisch kann eine andere Person für diesen Zeitraum auch einen
Eintrag haben, aber das soll ja auch nicht unterbunden werden?
nein, das ist ganz normal. Ich wollte das nur nochmal herausstellen, weil es für das Abfrageproblem entscheidend ist.
Wenn ich nun in der Abfrage das Kriterium ‚NICHT „10 2006“‘
eingebe, bekomme ich die Person trotzdem, weil sie ja
vielleicht mit einem anderen Zeitraum „09 2006“ auch in der
Liste ist.
das wäre ja dann auch normal und richtig
ja, aber genau hier ist der Fehler in der Abfrage. Ich brauche ja eine Abfrage, bei der das nicht passiert.
Eigentlich brauche ich also ein Kriterium, die mir ALLE
Personen ausgibt, abzüglich derjenigen, die bereits einen
Eintrag für den Zeitraum „10 2006“ haben.
dein Zeitraum ist ein Text und kein Zeitraum im Sinne von
Access.
stimmt, war meinerseits missverständlich. Ich muss gestehen, dass mir gar nicht bewusst war, dass es in Access einen Datentypen dafür gibt.
D.h. du hast nun mehrere Möglichkeiten:
-
Kriterium: „10 2006“
-
Spalte: iif([Zeitraum] „10 2006“;TRUE;FALSE)
Kriterium: False
mir scheinen die beiden Beispiele äquivalent. Leider funktionert es so eben nicht.
Tabelle 1: Personen
„Hans Muster“, 1
„Mr. Access“, 2
…
Tabelle 2: Zuordnungen
1, „9 2006“
2, „10 2006“
2, „9 2006“
2, „11 2006“
Ich möchte nun eine Abfrage, die mir z.B. auf Eingabe (Parameter) „10 2006“ als Ergebnis (1) liefert. Auf „12 2006“ sollte (1,2) erscheinen, auf „9 2006“ die leere Menge. Ich denke, das Prinzip ist klar.
Wenn ich nun als Kriterium „9 2006“ eingebe, erhalte ich trotzdem (2), weil ja auch Einträge in der Tabelle sind, die das Kriterium erfüllen.
Wobei der Zeitraum
natürlich variabel ist (aber das sollte ja nicht das Problem
sein).
den kannst du als Parameter in der Abfrage eingeben, oder über
ein Formular wählen lassen.
das ist klar und bereits so realisiert.
Nun stell ich mir das aber furchtbar (!) lahm vor.
das muß nicht sein 
das bezog sich auf die VBA-Lösung, auch der nachfolgende Absatz:
Und den Gimmick, nur die Einträge in
KB2 anzuzeigen, die auch noch einen Eintrag in KB3 hätten,
krieg ich so auch nicht hin 
wo genau liegt das Problem?
Wenn ich in einer Schleife alle Firmen durchlaufe und darin verschachtelt alle Personen dieser Firmen überprüfe, dann scheint mir das reichlich ineffizient und bei großem Datenbestand wird das schon eine Weile dauern, bevor sich das Kombofeld füllt. Was ja irgendwie nicht sein kann… 
Eigentlich ist das doch ein Paradebeispiel für etwas, was man aus einer Datenbank bekommen möchte. Das Inverse dieser Suche ist ja auch kein Problem (SELECT * FROM tbl WHERE zeitraum=„9 2006“).
Vielen Dank
Marc