Avatar billede visto Guru
09. marts 2001 - 17:09 Der er 9 kommentarer og
1 løsning

Felter med måned og år, subtraktion

2 felter skal indeholde hver sin tidsangivelse, sådan at kun data for måned og år indtastes og vises, fx 3-01 for marts 2001.

I et tredje felt skal tidsangivelsen fra det ene felt trækkes fra tidsangivelsen i det andet felt, sådan at hvis der står 3-01 i det ene og 1-00 i det andet felt, så skal resultat i det tredje felt vises som fx 1.2 (evt 1.02).
Kan det lade sig gøre??

(Jeg arbejder i Access 97)
09. marts 2001 - 21:55 #1
I det 3. felt kan du skrive noget i retning af

=Year([dato1])-Year([dato2]) & \".\" & Month([dato1])-Month([dato2])

, hvis det første felt hedder \"Dato1\" og det andet \"Dato2\"
Dette kræver bare at Dato1 og Dato2 ER dato-felter, som blot er formateret som måned og år (m-yy). Ulempen ved dette er, at man er nødt til at indtaste en fuld dato. F.eks. 1-3-01 for at få den til at skrive 3-01.

Hvis du derimod holder Dato1 og Dato2 som rent tekst, således at der kun kan stå f.eks. 12-00 eller 5-01 osv, så kan du bruge denne syntaks i det 3. felt:

=Right([dato1];2)-Right([dato2];2) & \".\" & Left([dato1];Len([dato1])-3)-Left([dato2];Len([dato2])-3)

mvh
Thomas

PS: du skal muligvis bytte om på Dato1 og Dato2 afhængig af hvilken som er den nyeste...
Avatar billede visto Guru
10. marts 2001 - 17:16 #2
Til Thomas: Tak for dit svar, der ser ud til at være et skridt på vejen.
Jeg har prøvet begge dine forslag af. Ingen af dem er helt OK.
Det første (det med =Year([dato1])-Year([dato2]) & \".\" & Month([dato1])-Month([dato2])) virker OK ved flg. eksempler:
1) dato1= 09-02, dato2= 09-00
2) dato1= 12-02, dato2= 09-00
men virker ikke ved flg. eksempel:
dato1= 01-03, dato2= 09-00
Jeg har altså fastholdt dato2, og det går galt, når dato1\'s månedsangivelse er et lavere ciffer end dato1\'s.

Dit andet forslag (=Right([dato1];2)-Right([dato2];2) & \".\" & Left([dato1];Len([dato1])-3)-Left([dato2];Len([dato2])-3)) viser dels en difference på et år og en måned som -1.-1, men det kunne måske relativt let rettes. Men det går helt galt, når den ene dato er efter år 20xx, den anden dato er 19xx. Fx vises differencen mellem 10-01 og 09-99, som 98.-1.

Forslag til at komme videre er velkomne.
Avatar billede sblar Nybegynder
11. marts 2001 - 23:37 #3
Prøv at se i hjælpen under \"DateDiff\". Der er måske noget du kan bruge.

mvh. Søren
Avatar billede visto Guru
12. marts 2001 - 16:24 #4
Jeg har prøvet hjælp og DateDiff, men det forstår jeg ikke meget af.
Det kommer bag på mig, at et så enkelt regnestykke skulle volde så store problemer og kræve så indviklede manøvrer. Men sådan er det åbenbart....Jeg havde egentlig håbet, at en eller anden havde en formel, der lige kunne skrives ind og som ville virke enkelt og problemfrit.
Avatar billede proaccess Nybegynder
12. marts 2001 - 20:51 #5
Du kan eventuelt prøve med denne:

=DateDiff(\"m\";[Dato1];[Dato2])\\12 & \".\" & DateDiff(\"m\";[Dato1];[Dato2]) Mod 12

Det skulle kunne klare det...
ProAccess
Avatar billede visto Guru
13. marts 2001 - 09:27 #6
Til proaccess: Det virker som det skal! Og spørgsmålet er dermed besvaret. (så du skal nok få dine point).
Jeg mangler dog en praktisk detalje, som jeg beder om hjælp til: De to datofelter, som jeg skal trække fra hinanden befinder sig i hver deres formular. Der er tale om en formular med en underformular, hvor de bagvedliggende tabeller er knyttet sammen i en en-til-en relation. Jeg går ud fra at det stadig er muligt at fratrække det ene datofelt fra det andet. Men hvordan? Hvad skal der stå i formlen? Eller skal data fra det ene felt overføres til den anden formular (eller tabel)? Hvordan??
Avatar billede proaccess Nybegynder
13. marts 2001 - 09:53 #7
Det burde stadig kunne lade sig gøre...

Du kan prøve med at sætte formular-navnene foran [Dato1] og [Dato2], så der for eksempel står noget i retning af:
=DateDiff(\"m\";[Formular1]![DetaljeSektion]![Dato1];[Formular2]![DetaljeSektion]![Dato2])\\12 & \".\" & DateDiff(\"m\";[Formular1]![DetaljeSektion]![Dato1];[Formular2]![DetaljeSektion]![Dato2]) Mod 12

Der skal selvfølgelig indsættes de rigtige formular, og sektionsnavne...

ProAccess
Avatar billede visto Guru
15. marts 2001 - 10:56 #8
til proaccess: Jeg har nu afprøvet dit sidste forslag, men der hvor resultatet af subtraktionen skulle stå står der blot #Navn?. Jeg er klar over, at det hele skal være 100 % præcist, men jeg kan ikke selv finde fejlen. Kunne jeg sende dig den testfil, jeg arbejder på, og ville du gide og kigge på den?
Avatar billede proaccess Nybegynder
16. marts 2001 - 10:34 #9
Hej Visto, prøv at sende den, så vil jeg kigge på det.

Det kan dog være at jeg først vender tilbage mandag, men lad mig se på den.

e-mail: proaccess@hotmail.com
Avatar billede visto Guru
19. marts 2001 - 08:06 #10
Mange tak til flot hjælp fra proaccess.
Spørgsmålet afsluttes hermed.
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