Access: Auswahl von Kunden nach ihrem Lebensalter

Ich verwalte meinen Kundenstamm mit Access. Unter anderem habe ich auch die Geburtsdaten meiner Kunden gespeichert. Mich interessiert dabei nicht so sehr das genaue Geburtsdatum, sondern das Alter. Bis jetzt habe ich immer per Kopfrechnen das ungefΣhre Alter ⁿberschlagen, aber es gibt doch sicher in Access die M÷glichkeit, das Lebensalter automatisch auszurechnen. Am liebsten wΣre mir eine L÷sung, bei der ich vor dem Aufruf einer Abfrage oder eines Berichts die Anzeige auf bestimmte Kunden beschrΣnken k÷nnte, so da▀ Access mir zum Beispiel nur alle Kunden zwischen 40 und 60 Jahren anzeigt.

Mit Hilfe von berechneten Feldern und der Datumsfunktionen von Access k÷nnen Sie tatsΣchlich das Lebensalter dynamisch berechnen und dann in Abfragen und Berichten wie ein normales Tabellenfeld verwenden. In solche Felder k÷nnen Sie allerdings keine Werte eingeben. Berechnete Felder erhalten Sie, wenn Sie in der Entwurfsansicht einer Abfragein einer leeren Spalte einen beliebigen Feldnamen und die Berechnungsvorschrift, getrennt durch einen Doppelpunkt, von Hand eintragen. Wenn Sie sich dabei auf andere Felder der Tabelle beziehen, schreiben Sie die Namen dieser Felder in eckige Klammern. Um zum Beispiel auseinem in der Tabelle gespeicherten Nettopreis den Bruttopreis zu errechnen, schreiben Sie Bruttopreis: [Nettopreis]*1,15. Beim Umschalten in die Datenblattansicht sehen Sie dann die zusΣtzliche Spalte Bruttopreis, die Access bei einer ─nderung des Nettopreises automatisch neu berechnet. Die Formel zum Berechnen des Lebensalters ist etwas komplizierter, in Worten lΣ▀t sie sich etwa so umschreiben: "Das Alter einer Person ergibt sich durch die Subtraktion des Geburtsjahres von der aktuellen Jahreszahl, zum Beispiel 1996-1961=35 Jahre. Wenn die Person in diesem Jahr noch nicht Geburtstag hatte, dann ziehe ein Jahr ab." Zum Ausdrⁿcken dieser Formel in Access sind au▀er der Funktion Wenn () noch einige Datumsfunktionen n÷tig: Datum() liefert das Systemdatum (also das jeweils aktuelle Datum), DatSeriell (Jahreszahl; Monatszahl; Tageszahl) erzeugt aus drei Zahlenangaben einen Datumswert, und die drei Funktionen Jahr (Datumswert), Monat (Datumswert) und Tag (Datumswert) liefern umgekehrt zueinem Datumswert die jeweiligen Zahlenangaben.Mit Hilfe dieser Funktionen lΣ▀t sich nun die genaue Formel aufstellen. Unter der Voraussetzung, da▀ der jeweilige Geburtstag im TabellenfeldGeburtsdatum gespeichert ist, lautet sie:Wenn(DatSeriell(Jahr(Datum());Monat([Geburtsdatum]);Tag([Geburtsdatum]))<=Datum();Jahr(Datum())-Jahr([Geburtsdatum]);Jahr(Datum())-Jahr([Geburtsdatum])-1). Um also in einer Abfrage ein berechnetes Feld Alter zu erhalten, tragen Sie in eine leere Spalte den Text Alter: gefolgt von obiger Formel ein. Mit [Shift]+[F2] erhalten Sie ⁿbrigens das Zoom-Fenster, in dem Sie auch lΣngere Ausdrⁿcke ⁿberblicken k÷nnen. Achten Sie genau auf die Klammer- und Zeichensetzung, sonst erhalten Sie Fehlermeldungen. Wenn alles korrekt ist, sehen Sie nun in der Datenblattansicht fⁿr jede Person dasgenaue Lebensalter.Ein berechnetes Feld k÷nnen Sie nun wie jedes andere Feld mit Kriterien versehen. Zum Beispiel k÷nnten Sie als Kriterium <=65 eintragen, um nur die Personen anzuzeigen, die 65 Jahre oder jⁿnger sind. Da Sie dieKriterien aber dynamisch festlegen wollen, empfiehlt es sich, mit Parameter-Anfragen zu arbeiten: Parameter sind Werte fⁿr Kriterien, die derBenutzer vor der Anzeige der Datenblattansicht eingeben mu▀. Dazu tragen Sie in das entsprechende Kriteriumsfeld statt einer Zahl (wie die oben als Beispiel verwendete 65) einen beliebigen Text in eckigen Klammern ein, zum Beispiel [Bitte Altersgrenze eingeben]. Dieser Text erscheint dann vor der Ausfⁿhrung der Abfrage in einem kleinen Formular mit dem Titel Parameterwerte eingeben als Eingabeaufforderung. Durch Eintippen entsprechender Zahlenwerte Σndern Sie nun bei jedem Aufrufder Abfrage schnell und bequem das Kriterium. Fⁿr Ihre Problemstellung bietet sich als Kriterium fⁿr die Altersspalte ein mit dem Zwischen-Operator gebildeter Ausdruck an, der Sie einen Altersbereich angeben lΣ▀t:Zwischen [Bitte geben Sie die untere Altersgrenze ein] Und [Bitte geben Sie die obere Altersgrenze ein]. Die Funktion verwendet die von Ihnen eingegebenen Zahlen als Kriterium, und Sie erhalten nur die Personen des von Ihnen gewⁿnschten Altersbereichs. Sie sehen an diesem Ausdruck, da▀ auch mehrere Parameter pro Kriterium erlaubt sind. Das Verteilen der Parameter auf verschiedene Kriteriumsfelder ist in Access ebenso m÷glich. Die Reihenfolge bei der Anzeige mehrerer Eingabeaufforderungen bestimmen die einzelnen Kriteriumszeilen. Innerhalb einer Zeile hΣlt sich Access einfach an die Abfragereihenfolge von links nach rechts.Zur Anzeige des Alters in Berichten legen Sie am einfachsten einenneuen Bericht an, der auf einer so definierten Parameterabfrage basiert. Das berechnete Feld Alter behandeln Sie dann wie jedes andere Tabellenfeld, auch die Abfrage der Altersgrenzen erscheint vor der Anzeige des Berichts. In einen bereits vorhandenen Bericht (der zum Beispiel direkt auf derKundentabelle basiert) fⁿgen Sie die Anzeige des Alters ein, indem Sieein neues Textfeld erzeugen und als Steuerelementinhalt ein Gleichheitszeichen gefolgt von der obigen Formel eintragen.