PDA

Vollständige Version anzeigen : Abfrage nach runden Geburtstagen


hans555
11.01.2001, 16:26
ich möchte aus einer Tabelle mehrere runde Geburtstage (50,60,70.....)suchen und ausgeben.
Ich hab´s auch schon gemacht, aber ich finde meinen Eintrag in der Abfrage nicht mehr.
Ist warscheinlich ein banales Problem, aber irgendwie stehe ich auf der Leitung!

Für die Hilfe danke im vorraus.

Hans

Mike
11.01.2001, 16:54
Hallo Hans,
Function RunderGeburtstag(strDatum As String) As Boolean
'Runden Geburtstag ermitteln aus Geburtsdatum
' ab 60 alle 5 Jahre
'nach harald brey
Dim tmp
Dim tmp2

If Not IsDate(strDatum) Or IsNull(strDatum) Then
RunderGeburtstag = Null
Else
tmp = GeburtsAlter(strDatum)
If tmp >= 60 Then
tmp2 = tmp Mod 5
Else
tmp2 = tmp Mod 10
End If
If tmp2 = 0 Then
RunderGeburtstag = True
Else
RunderGeburtstag = False
End If
End If
End FunctionMike

hans555
11.01.2001, 18:34
Danke Mike für deine schnelle Antwort.

ich hab es aber das letzte Mal direkt in der Abfrage gemacht.
Jahr(datum())-50 = jahr ([geburtsdatum])oder.....
oder so ähnlich. es funktioniert auch mit 3 Jahreszahlen, aber dann ist Schluß.
nach Eingabe erscheint die obige Formel nicht mehr.
Ich wollte eigentlich nur meine alte Formel erweitern, aber sie wird nicht mehr angezeigt.

Danke nochmal für deine Mühe.Ich habe nur noch so meine Probleme, deine´n Tip in mein Programm einzuarbeiten.(Anbindung Abfrage, Bericht)

Mike
12.01.2001, 10:12
Sorry, ich habe noch eine Funktion vergessen. Der Aufruf: RunderGeburtstag("3.5.51") funktioniert auch in Abfragen.Function GeburtsAlter(strDatum As String) As Byte
'nach harald brey
If Not IsDate(strDatum) Then
GeburtsAlter = Null
Else
GeburtsAlter = Year(Now()) - Year(strDatum)
End If
End FunctionMike

Mike
12.01.2001, 10:43
hier noch die fehlende Funktion. Zum Aufruf siehe Beitrag von PeKa.
MikeFunction GeburtsAlter(strDatum As String) As Byte
'nach harald brey
If Not IsDate(strDatum) Then
GeburtsAlter = Null
Else
GeburtsAlter = Year(Now()) - Year(strDatum)
End If
End Function

Karl Donaubauer
12.01.2001, 11:59
Wenn's um verschiedene aber nicht alle runden Geburtstage geht, die irgendwann heuer stattfinden, dann reicht als Formel (d.h. Felddefinition) sowas wie:

Jahr(Datum()) - Jahr([Geburtsdatum])

Wenn du das genaue aktuelle Alter willst, s. FAQ 2.7 (evtl. auch 3.12) auf meiner u.a. Homepage.

Dann schreibst du die gewünschten Altersangaben als Kriterium:
50 Oder 60 Oder 70

Wenn's um alle runden geht d.h. die durch 10 ohne Rest teilbaren, dann schreib als eigenes Feld in der Abfrage:

(Jahr(Datum())-Jahr([Geburtsdatum])) Mod 10

als Kriterium: 0


HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: www.donkarl.com (http://www.donkarl.com)