Avatar billede saxe_bratlie Nybegynder
02. maj 2005 - 20:05 Der er 10 kommentarer og
1 løsning

Konvertering av verdi i en spørring

Jeg har følgende verdi i en tabell, som er importet fra en TXT fil.

01.01.01 14:34:32 (Altså; dato, time, sekund og 100/sekund).

Feltet definerer MS Access automatisk som et Text felt, og dette kan ikke endres i tabellen, da tabellen er koblet.

Jeg ønsker å lage en spørring på tabellen, som lager et nytt felt kun med dato, timer og hele sekunder. Feltet i spørringen må da konverteres til et datofelt.

Den skal da kun vise: 01.01.01 14:34

Noen som har et forslag på hvordan jeg kan gjøre dette i en spørring in MS Access (ikke SQL, eller VBA).

/ Bratlie
Avatar billede kjulius Novice
02. maj 2005 - 20:25 #1
Jeg er lidt forvirret. Du vil ikke have SQL (eller VBA), men en forespørgsel (spørring) ER da SQL. Enhver forespørgsel (spørring) kan vises både som SQL og grafisk. Den grafiske overflade er bare en anden måde at vise den underliggende SQL. Så du undgår vist ikke SQL helt :-)
Avatar billede saxe_bratlie Nybegynder
02. maj 2005 - 20:28 #2
hei

Ja jeg vet, men jeg foretrekker å bruke utformingen MS Access har, og ikke direkte SQL språk om du fårstår. Jeg lar dermed Access lage den korrekte SQL stringen.

Jeg bruker kun spøøringsvinduet Access har har.

/ Bratlie
Avatar billede saxe_bratlie Nybegynder
02. maj 2005 - 20:36 #3
Om dette skaper mye forvirring, kan det også hjelpe med SQL setningen om du har den.

Jeg Har fått til dettet: Test:(Format([dato];"ddmmm\'yy"))

Om du kan lage den samme for klokkeslett med hele sekunder. Feks 10.55 ??

/ Bratlie
Avatar billede kjulius Novice
02. maj 2005 - 20:48 #4
Jeg vil foreslå, at du først omdanner karakterstrengen til en date type (eller det andre databaser ville synes var en datetime type):

Timestamp: CDate(Erstat([Timestamp_char];".";"-"))

i SQL ville dette hedde:

SELECT CDate(Replace([Timestamp_char],".","-")) AS [Timestamp]

Derfra kan du arbejde videre med format, som du gjorde i dit sidste indlæg:

Timestamp: Format(CDate(Erstat([Timestamp_char];".";"-"));"dd mmm"" '""yy hh\.nn")

som i SQL ville hedde:

SELECT Format(CDate(Replace([Timestamp_char],".","-")),"dd mmm \'yy hh.nn") AS [Timestamp]
Avatar billede saxe_bratlie Nybegynder
02. maj 2005 - 21:15 #5
Hei.

Dette begynner å fungere bra, men jeg får fremdeles en "error" i retur.

For å være helt spesifik så er orginal verdien i feltet jeg ønsker å konvertere og forkorte følgende:

13.04.05  16:39:34.671

.617 er da millisekunder.

Må jeg fjærne de 3 siste siffrene i verdien før jeg kan begynne å konvertere de, og hvordan kan jeg gjøre det ?? Eventuelt ved en oppdaterings spørring ??

Altså: "13.04.05 16:39:34.671" skal bli "13.04.05 16:39"

Ikke noe lett sak dette, men den TXT filen jeg har lagrer tiden på denne måten, så det er det eneste jeg har å arbeide med.

Flott om du har en løsning på dette :-)

/ Bratlie
Avatar billede mugs Novice
02. maj 2005 - 21:17 #6
Et udtryk:
Left(FELTNAVN;14)
Avatar billede saxe_bratlie Nybegynder
02. maj 2005 - 21:56 #7
Ja, denne fungerer jo bra.

Jeg kan se at feltet ikke er konvertert til dato, så om du kunne satt opp hele "stringen" med alle utrykkene i ett utrykk hadde det vært fint. Jeg er ikke så god på den logiske oppbygningen i slike funksjoner.

Da kun om det er mulig...!

Takk for flott hjelp !

/ Bratlie
Avatar billede kjulius Novice
02. maj 2005 - 22:00 #8
Ja, som mugs skriver, kan du bruge en Left funktion:

Timestamp: Format(CDate(Erstat(Left([Timestamp_char];17);".";"-"));"dd mmm"" '""yy hh\.nn")

eller som SQL

SELECT Format(CDate(Replace(Left([Timestamp_char],17),".","-")),"dd mmm \'yy hh.nn") AS [Timestamp]


Alternativt kan du, hvis du bare ønsker at bibeholde den originale formattering (ekskl. sekunder og mikrosekunder) bare skrive:

Timestamp: Left(Timestamp_char; 14)

men så er det stadig et char-felt, og du er låst mht. formattering.
Det er den løsning mugs foreslår. The choice is yours...
Avatar billede kjulius Novice
02. maj 2005 - 22:12 #9
Okay, du har valgt, ser jeg...
Avatar billede saxe_bratlie Nybegynder
02. maj 2005 - 22:33 #10
Hmmmmm, det var vel egentlig begge sin fortjeneste så absolutt.

Kjulius, jeg opretter et spørsmål til deg, slik at du får de poeng som gjelder.

Takk begge !

/ Bratlie
Avatar billede kjulius Novice
02. maj 2005 - 22:51 #11
Det er skam mig som takker. Det havde du skam ikke behøvet gøre. Men endnu en gang tak!
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