Avatar billede dingodas Nybegynder
07. november 2009 - 18:11 Der er 5 kommentarer og
1 løsning

Beregning på datofelt

I Access 2007 har jeg et felt med fødselsdato f.eks. 07-11-1937.
Ved udskrift af rapport vil jeg gerne have udregnet og vist en alder i hele år, ud fra fødselsdatoen. Jeg har forsøgt på forskellige måder med DateDiff i udtryksgeneratoren - uden held. Kan det overhovedet laves her, eller skal der en makro til at klare opgaven. Jeg er helt på bar bund med makroer, så hvis det er her, det skal laves, håber jeg på "lidt højtlæsning for dummies" - Tak.
Avatar billede fdata Forsker
07. november 2009 - 20:42 #1
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")
Avatar billede fndenmark Nybegynder
09. november 2009 - 14:13 #2
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])
Avatar billede fdata Forsker
09. november 2009 - 19:06 #3
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.
Avatar billede dingodas Nybegynder
12. november 2009 - 12:51 #4
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.
Avatar billede fdata Forsker
15. november 2009 - 10:13 #5
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.
Avatar billede dingodas Nybegynder
09. september 2012 - 16:12 #6
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester