Fick inget riktigt svar på den här frågan så gör en ny tråd om bara det. Som jag förstår det ger nedan att du söker på personer som är 14 år idag och äldre fram till den dag de fyller 17. Här kommer en variant som jag brukar använda. annK: tack, du fick mej att tänka i rätt banor. var ju bara att plussa på ett år på maxald:)Söka på ålder(igen)
I databsen sparar jag när en medlem är född i formatet date
nu vill jag att man ska kunna söka på folk mellan 2 åldrar såhär:
minald = 14
maxald = 17
mindate = dateadd("yyyy",-minald,date)
maxdate = dateadd("yyyy",-maxald,date)
"Select * from medlemmar where fodd >= '" & maxdate & "' and fodd <= '" mindate "'"
Men om man nu söker på ålder 14-14 så söker den bara på just idag, finns det nån bra lösning på det här?Sv: Söka på ålder(igen)
Om du utvecklar uträkningarna kan du få fram dagen före 18-årsdagen!
minald = 14 'fyllda 14
maxald = 18 'men inte 18
mindate = dateadd("yyyy",-minald,date)
maxdate = dateadd("yyyy",-maxald,date)
lastDate = DateAdd("d", -1, maxdate) 'dagen före 18-årsdagen.
'byter ut maxdate mot lastDate
"Select * from medlemmar where fodd >= '" & lastDate & "' and fodd <= '" mindate "'"
/annK
Sv: Söka på ålder(igen)
<code>Dim datFödDat As Date
Dim dblAge As Double
datFödDat = "1962-11-24"
dblAge = (CDate(Now) - datFödDat) / 365.25</code>
Den är inte helt exakt eftersom skottåren ställer till det (därav delningen med 365.35), men det kanske är tillräckligt noggrannt för ditt syfte?
//JanneSv: Söka på ålder(igen)
Stratocaster:
det var inte det jag sökte, har redan en sån kod som visar helt rätt =)
<code>
function aldra(datum)
alder = DateDiff("yyyy", datum, Date)
If DateAdd("yyyy", alder, datum) < Date Then
aldra = alder
Else
aldra = alder -1
End If
end function
</code>