Access: Wenn-Funktion mit Erkennung von leeren Datensätzen?

...komplette Frage anzeigen

3 Antworten

Also so wie ich das verstehe, brauchst du hier nur eine offene Referenz auf die 2. Tabelle:

Im Abfrageeditor ziehst du ja eine Verbindung von der ersten auf die zweite Tabelle. Auf diese Linie musst du doppelklicken und im folgenden Fenster auf Option 2 oder 3 klicken (hängt davon ab von wo nach wo du die Verbindung gezogen hat, jedenfalls muss anschließend auf der Seite der zweiten Tabelle ein Pfeil sichtbar sein).

Dann fragst du dein Feld wie folgt ab:

Ausdr1: Wenn(IstNull([Tabellenname![Feldname]);"fehlend";"")

Übrigens ist es klar, dass die Abfrage auf 0 oder "" nichts bringt. Wenn schon, musst du auf Null abfragen. Null ist ungleich 0 und ungleich ""!

Die DOM-Funktion brauchst du hier nicht (wenn beide Tabellen in der Abfrage enthalten sind).

Hallo, DOM steht für Domäne > Datenherkunft. Die sgn. Domänen-Aggregatfunktionen sind immer gleich aufgebaut: z.B. DomWert(Ausdruck ; Domäne ; Kriterium) heisst: Hol den Wert "Ausdruck" aus der "Domäne" (Tabelle oder Abfrage) mit dem "Kriterium" XYZ. Demnach gibt es DomSumme, DomAnzahl, DomMax, DomMin, etc... - immer gleich aufgebaut. Gruß Armin Dippel

P.S. DomAnzahl gibt die Anzahl der Datensätze zurück, die in "Ausdruck" (Aufbau siehe oben) einen Wert haben

Hallo, das ist schon möglich - anbei ein Lösungsansatz:

Du schreibst in das Feld, in dem "fehlend" erscheinen soll, wenn es keinen Datenstz mit der Nummer in einer anderen Tabelle gibt:

=Wenn(DomAnzahl("[FeldNr]"; "tblAndererTabellenname"; "[NrHier]=[FeldNr]")<1;"fehlend";DomWert("[FeldNr]"; "tblAndererTabellenname"; "[NrHier]=[FeldNr]"))

Dies führt dazu, dass wenn keine entsprechende Nummer vorhanden ist (wie in dem gerade angezeigten Datensatz), dann erscheint "fehlend", ansonsten erscheint die Nummer aus der anderen Tabelle. Wenn Du möchtest, dass das Feld einfach leer bleibt, anstelle dass die Nummer bei Vorhandensein angezeigt wird, dann schreibst Du folgendes: =Wenn(DomAnzahl("[FeldNr]"; "tblAndererTabellenname"; "[NrHier]=[FeldNr]")<1;"fehlend";"")

Ich hoffe, geholfen zu haben.

Viele Grüße, Armin Dippel

Marsiel 07.12.2009, 16:41

Hui, das klingt auf den ersten Blick kompliziert. Wie Wenn-Funktionen funktionieren, weiß ich ja aus Excel. Wird bei mir noch verschachtelter. Jetzt muss ich mir nur noch meine Datenbank anschauen und überlegen, wie die benötigten Felder bei mir heißen. ;-)

Danke schon mal fürs Erste. Ich werde es ausprobieren. Falls ich es nicht hinbekomme, frage ich nochmal nach. ;-)

Viele Grüße, Marsiel

PS: Was bedeutet DomAnzahl? Wofür steht das Dom?

0
Marsiel 10.12.2009, 13:41
@Marsiel

Ich konnte es leider noch nicht richtig hinbekommen. Folgendes: Ich habe ein Haupttabelle "Sendungen". Dort stehen die Sendungen aus Serien drin, die ich aufgenommen habe mit einer Sendungsnummer als Primärschlüssel. Nun habe ich noch eine Tabelle "Episoden" mit dementsprechender Episodennummer als Primärschlüssel. Diese beiden Tabellen sind nicht unmittelbar miteinander verknüpft. In einem Bericht möchte ich mir alle Episoden anzeigen lassen, die es zu einer Serie gibt und dann im Detailbereich anzeigen lassen, dass ich eine Episode noch nicht aufgenommen habe, also noch aufnehmen muss. Das wird wohl doch ein wenig schwieriger, wie ich befürchte. So, wie ich deine Erklärung verstanden habe, würde es funktionieren, wenn beide Tabellen den gleichen Primärschlüssel haben, also Daten desselben Datensatzes in eine andere Tabelle ausgelagert wurden? Ist für mich alles nicht so einfach...

Vielen Dank schon mal und viele Grüße, Marsiel

0

Was möchtest Du wissen?