01. marts 2004 - 14:54
Der er
2 kommentarer og
1 løsning
Udvælgelse på baggrund af CPR
Jeg ved godt at det er en klassisker efterhånden, men alligevel:
Jeg ønsker at lave et udtræk for de 30-39 årige på baggrund af CPR-nr. Jeg har forsøgt med følgende sætning men får en syntaksfejl:
SELECT Tbl_Brugere.*, Tbl_Brugere.CPR, CDate(IIf(CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2))<=Date(),CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2)),DateAdd("yyyy",-100,CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2))))) AS Dato
FROM Tbl_Brugere
WHERE (((CDate(IIf(CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2))<=Date(),CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2)),DateAdd("yyyy",-100,CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2)))))) BETWEEN DateAdd("yyyy",-30,Date() AND DateAdd("yyyy",-39,Date())));
Jeg ville sætte stor pris på hjælp.
På forhånd tak.
Geert
01. marts 2004 - 21:37
#1
Hvis du lægger denne kode i et modul:
Public Function Alder(Dato As Date) As Integer
If DateSerial(Year(Date), Month(Dato), Day(Dato)) > Date Then
Alder = DateDiff("yyyy", Dato, Date) - 1
Else
Alder = DateDiff("yyyy", Dato, Date)
End If
End Function
Så virker denne SQL:
SELECT Tbl_Brugere.CPR, alder(CDate(IIf(CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2))<=Date(),CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2)),DateAdd("yyyy",-100,CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2)))))) AS Alder
FROM Tbl_Brugere
WHERE (((alder(CDate(IIf(CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2))<=Date(),CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2)),DateAdd("yyyy",-100,CDate(Mid([CPR],1,2) & "/" & Mid([CPR],3,2) & "/" & Mid([CPR],5,2))))))) Between 30 And 39));