Avatar billede -anders- Juniormester
14. februar 2018 - 17:27 Der er 5 kommentarer og
1 løsning

Konvertere tekst til dato (opdateringsforespørgsler)

Kære eksperter

Jeg arbejder i Access 2010

I min database er der registeret CPR nummer for alle personer der er oprettet. De sidste 4 cifre skal fjernes da de ikke længere må vises.  Det har jeg klaret med nedenstående syntaks skrevet ind i "Opdater til"

Left([CPR],6)

Det virker fint, alle CPR numre er nu "barberet" ned til de første 6 cifre. fx 010557

Jeg har brug for at få vist dag og måned, og et 4 cifret årstal. jeg har derfor tilføjet et nyt felt i tabellen med navnet "Felt1", datatypen er tekst, og køre så nedenstående

Left([CPR],4) & "19" & Mid([CPR],5,2)

Det virker fint, i Felt1 står der nu fx 01051957. Der er ingen personer i databasen som er født før år 1900, eller efter år 1999.

Problem. Hvordan for jeg konverteret Felt1 til datatypen Dato/klokkeslæt. Jeg har prøvet at gå i tabellen og ændre datatypen tekst til datatypen Dato/klokkeslæt, men det fejler. jeg har også prøvet at oprettet felt1 som dato/klokkeslæt, men så fejler opdateringsforespørgslen?

Er der nogen som har en god ide til at løse problemet, eller skal det gøres på en helt anden måde? Jeg har læst lidt om CDate funktionen, men jeg bliver ikke meget klogere af det. Det skal kun køres en gang.

På forhånd tak for hjælpen.

Hilsen
Anders.
Avatar billede bvirk Guru
14. februar 2018 - 17:57 #1
Man kan godt bruge cvdate, men der er også denne måde:

DateSerial(val(mid(cpr,5,2)),val(mid(cpr,3,2)),val(left(cpr,2)))
Avatar billede falster Ekspert
14. februar 2018 - 18:07 #2
Eller prøv (direkte fra 10 cifret cpr-nummer som tekst):
Dato_Er: CDate(Format(Left([cpr];6);"00\-00\-00"))
Avatar billede terry Ekspert
14. februar 2018 - 18:14 #3
Problem. Hvordan for jeg konverteret Felt1 til datatypen Dato/klokkeslæt

You create felt1 with data type Date/Time BEFORE you update. And I would use
bvirk's DateSerial method to do that ;-)
Avatar billede -anders- Juniormester
14. februar 2018 - 18:33 #4
Hej alle

Tak for jeres indlæg, det jeg glad for :-)
Jeg har prøvet dem, og det virker sådan set, men jeg for ikke det 4 cifret årstal med. Jeg arbejder lidt videre med det, og vender tilbage med en status.
Avatar billede falster Ekspert
14. februar 2018 - 18:51 #5
#2 giver 4-cifrede årstal. Direkte fra 010557#### - stripper til 010557 - formaterer til 01-05-57 og CDate giver årstal 1957(, når dine datoformater i Windows er indstillet med åååå til sidst)
Avatar billede -anders- Juniormester
14. februar 2018 - 19:15 #6
Hej Falster
Du har fuldstændigt ret i #2, det mig der sidder og fumler. Jeg testede på  cpr numre som allerede var "kogt" ned til 6 cifre. Mange tak for hjælpen, og alle øvrige indlæg.

Dejligt i gider selvom der ikke er points på spil :-)

Hilsen
Anders.
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

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