Avatar billede t_jaeger Praktikant
30. marts 2004 - 13:50 Der er 19 kommentarer og
1 løsning

Finde jubilæum udfra årstal.

Jeg skal lave en rapport, hvor jeg kan udtrække navne på personer der har fx. jubilæum. det kan 10, 20, 25, 50år.
Jeg har tabel med navn og ansættelse år.

Groft sagt er det "I år - ansættelse = 10", er det udsagn rigtigt så skrives navne på dem så har været der 10 år
Avatar billede terry Ekspert
30. marts 2004 - 14:18 #1
This is NOT tested, but it may give some ideas!

SELECT tblDates.StartDato, DateDiff("yyyy",[startDato],CDate(Year(Date()) & "/01/01")) AS Jub
FROM tblDates
Avatar billede terry Ekspert
30. marts 2004 - 14:21 #2
I can see it deosntwork as I hoped, but I'm sure it will still give some ideas
Avatar billede terry Ekspert
30. marts 2004 - 14:26 #3
SELECT tblDates.StartDato, DateDiff("yyyy",CDate(Year([startDato]) & "/01/01"),CDate(Year(Date()) & "/01/01")) AS Jub
FROM tblDates
Avatar billede mugs Novice
30. marts 2004 - 14:58 #4
t_jaeger skriver:

"Jeg har tabel med navn og ansættelse år."

Så det må være nok med et kriterie under ansættelsesåret der hedder +10, +20 o.s.v.

Det var en anden snak, hvis ansættelsesdatoen var i tabellen og der skal beregnes en fremtidig jubilæumsdato. Men som spørgsmålet er formuleret, antager jeg at feltet ansættelsesår er et numerisk felt (tal).
Avatar billede terry Ekspert
30. marts 2004 - 15:12 #5
Your more than likely right there mugs, but once again its hard to say when the user doesnt participate!
Avatar billede hnteknik Novice
30. marts 2004 - 15:27 #6
Jeg har brugt denne i mange år:
Den viser, hvem der bliver 25,40 og 50 år indenfor det næste år

Udskift/ret cprnr til ansættelsesdato og ret alder til jubilæum
Henrik


SELECT DISTINCTROW Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1 AS ALDER, LØNFIL.Navn
FROM LØNFIL LEFT JOIN KONTORADR ON LØNFIL.Kontor = KONTORADR.Kontornr
WHERE (((Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)>=25 And (Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)<26)) OR (((Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)>=40 And (Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)<41)) OR (((Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)>=50 And (Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)<51))
ORDER BY Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1;
Avatar billede hnteknik Novice
30. marts 2004 - 15:29 #7
Ups den skulle koges ned:

SELECT DISTINCTROW Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1 AS ALDER, LØNFIL.Navn
FROM LØNFIL
WHERE (((Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)=25)) OR (((Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)=40)) OR (((Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1)=50))
ORDER BY Int((Now()-DateValue(Mid([LØNFIL].[Cprnr],1,2) & "-" & Mid([LØNFIL].[Cprnr],3,2) & "-19" & Mid([LØNFIL].[Cprnr],5,2)))/365.25)+1;
Avatar billede t_jaeger Praktikant
30. marts 2004 - 17:19 #8
Jeg skal lige prøve mig frem, så jeg vender tilbage
Avatar billede t_jaeger Praktikant
30. marts 2004 - 18:21 #9
Til terry: jeg får fejlmeddelse der mangler operator.
Til hnteknik: jeg syntes at den er meget stor til det lille resultat jeg skal have.
Til mugs: Det er i datoformat, tilpasset.
Jeg er en stadig en novice til access, men det går fremad.

Hvis nu jeg laver en forespørgelse og i kriterie skriver noget lignende
            "Now(yyyy)-[tabel];[felt]=20"
Ville det kunne lade sig gøre ved at bruge de rigtige operatore.
Avatar billede hnteknik Novice
30. marts 2004 - 19:03 #10
Bad du ikke om 25, 40 og 50 års jubi ??
Her er den med dato

SELECT Tabel1.navn, Tabel1.ansat, Int((Now()-DateValue([ansat]))/365.25)+1 AS jubi
FROM Tabel1
WHERE (((Int((Now()-DateValue([ansat]))/365.25)+1)=25)) OR (((Int((Now()-DateValue([ansat]))/365.25)+1)=40)) OR (((Int((Now()-DateValue([ansat]))/365.25)+1)=50));
Avatar billede terry Ekspert
30. marts 2004 - 19:12 #11
Can we see the query you are using? The example I gave IS only an example, so you need to alter it accordingly!

THis should give you a column with th enumber of years the person has been employed then you could use the criteria field for this column to enter which years you are interested in

IN(25,40,50)
Avatar billede hnteknik Novice
30. marts 2004 - 19:15 #12
navn    ansat
A    01-04-1979
B    01-04-1964
C    01-04-1954
D    01-05-1957

---
navn    ansat    jubi
A    01-04-1979    25
B    01-04-1964    40
C    01-04-1954    50
Avatar billede mugs Novice
30. marts 2004 - 21:49 #13
I en forespørgsel kan du indsætte funktionen DateAdd i et udtryk:

Udtryk1: DateAdd("yyyy";25;[ansat])

Giver dig datoen for 25-års jubilæum beregnet fra ansættelsesdatoen.
Lav nye udtryk og udskift 25 med det ønskede antal år.

Du laver et udtryk ved at sætte markøren i et tomt felt, derefter indsætter (Copy and past) du mit udtryk. Ved næste udtryk skifter du Udtryk1 med Udtryk2 o.s.v.
Avatar billede t_jaeger Praktikant
31. marts 2004 - 13:32 #14
Nu har jeg fået noget af det til at virke. Men resltatet er ikke helt som jeg havde tænkt mig. Hvis det har interesse så har jeg en prøve db og et word doc som viser hvordan jeg gerne vil have rapporten
Avatar billede mugs Novice
31. marts 2004 - 14:05 #15
mugs@mail.dk
Avatar billede t_jaeger Praktikant
31. marts 2004 - 20:42 #16
Filer er sendt
Avatar billede mugs Novice
31. marts 2004 - 22:32 #17
Returneret med et par forslag.
Avatar billede t_jaeger Praktikant
02. april 2004 - 11:12 #18
mugs har kommet med et simpelt løsningsforslag, som ramme meget præcis det resultat som jeg ønskede.

Derfor går point til mugs
Avatar billede hnteknik Novice
02. april 2004 - 11:44 #19
>> mugs
Hvis det er så simpelt, så kom op på bordet med det. For det er sikkert ikke sidste gang vi får det spørgsmål.

Mht til simpelhed. Nogle vil gerne have andre til at lave en knap, hvorunder det hele foregår - det er simpelt. Andre vil gerne have fingerne ned i olien og selv kunne ændre indholdet - det er indlæring.
Avatar billede mugs Novice
02. april 2004 - 23:32 #20
hnteknik -> Det simple i løsningen ligger i det forhold, at brugeren ændrede db, så der i stedet for ansættelsesdatoer kun var angivet et årstal. Jeg har herefter blot lavet underrapporter med de forskellige jubilæer. Forespørgslerne refererer til et indtastet årstal i en formular.
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