Du skal nok bruge en lille funktion i stil med:
Public Function Alder(D As Date) As Integer
Alder = Year(Date) - Year(D)
If Month(D) = Month(Date) Then
If Day(D) > Day(Date) Then
Alder = Alder - 1
End If
End If
If Month(D) > Month(Date) Then
Alder = Alder - 1
End If
End Function
Opret et nyt modul og copy/paste koden ind.
Herefter kan du i forespørgsler og på formularer og rapporter bruge funktionen.
Hvis du f.eks. har et felt ved navn Fødselsdag, kan du i et andet felt skrive:
=IIf(IsNull([Fødselsdag]);Null;Alder([Fødselsdag]))
(Husk at Access nogle gange bruger semikolon og andre gange komma til at adskille parametre. Hvis du er newbee, så bare prøv dig frem. "Learning by doing")
Muligvis er her en løsning.
Jeg har selv et felt: fødselsdag, som omregnes til år.
Der er brugt følgende udtryk:
Udtryk1: Year([alleGymnaster].[Fødselsdag])
Ja ja; men så enkelt er det jo ikke! Det giver dig jo bare fødselsåret.
Du er nødt til at måle dags dato op mod selve fødselsdagen.
Ellers vi to personer, der er født hhv. 1. juli 1989 og 1. december 1989 begge være 20 år i dag, og det er jo ikke helt korrekt.
Tak for svarene.
Til fndenmark: Dit udtryk ser ud til at virke som DatePart, som plukker de enkelte elementer ud af datoen - altså ingen beregning.
Til fdata: Jeg eksperimenterer stadig på kravlegårdsstadiet med at finde ud af, hvordan makroer fungerer. Jeg har endnu ikke fundet logikken - arbejder videre.
Helt ok; men vær lige obs på, at min løsning ikke er baseret på en makro; men på et modul.
Makroer er en række kommandoer, som Microsoft har lagt i en oversigt - klar til brug. De løser almindeligt forekommende opgaver.
Hvis du vil løse mere specielle opgaver (såsom beregning af alder eller gennemløbe en række poster og ændre dem ud fra forskellige kriterier) skal du i gang med egentlig programmering. Det sker i modul-afdelingen.
Som skrevet tidligere, kan du bare oprette et nyt modul og copy/paste min kode ind.
Spørgsmålet lukkes (hvis jeg kan huske hvordan). Jeg har ikke fået det til at virke- sikkert på grund af mig selv.
Tak for deltagelsen.