es gibt noch die Möglichkeit das über ein Makro zu lösen:
Das Feld mit dem Geburtsdatum heißt bei mir: "datGeburtstag"
Erstelle weiters ein ungebundenes Numerisches Feld in Deinem Formular mit dem Namen "Alter_in_Tagen"
Dann folgendes Makro dem Ereignis "Nach dem Datensatzwechsel" des Formulars, bzw. dem Ereignis "Nach dem Aktualisierem" des Kontrollelementes "datGeburtstag" zuweisen:
Code: Alles auswählen
sub NACH_DatensatzWechsel
oForm = thisComponent.drawpage.forms.getbyindex(0)
select case oForm.getByName("datGeburtstag").date
case null,0,""
oForm.getByName("Alter_in_Tagen").value = 0
case else
sGebDatum = cstr(oForm.getByName("datGeburtstag").date)
oForm.getByName("Alter_in_Tagen").value = datevalue(date) - datevalue(left(sGebDatum,4) & "." & mid(sGebDatum,5,2) & "." & right(sGebDatum,2))
end select
end sub
Der Weg dorthin: Datevalue kann mit dem long-Wert den die .date Property des Geburtstagsfeldes liefert nichts anfangen - also wird dieser in einen String umgewandelt, zerlegt und mit Punkten versehen und dann erst mit Datevalue umgerechenet etc. Welchen Sinn es hat, dass .date einen long-Wert zurückgibt darfst Du mich aber nicht fragen
Diese Berechnung berücksichtigt auch Schaltjahre!