Avatar billede quqdk Praktikant
01. december 2010 - 08:34 Der er 12 kommentarer og
1 løsning

Beregnings formler i Access

Jeg har udviklet en database, med en form til indtastning af data.
Jeg har dog nu det problem at jeg ikke ved hvordan man indsætter regneformler i selve databasen, således at der kommer de rigtige tal frem.

Er der nogen der kan give mig et hint, og eventuelt vil jeg også spørge om det er muligt at nogen kan indtaste dem for mig i mit regneark? :)

Mvh,
quqdk
Avatar billede mugs Novice
01. december 2010 - 08:40 #1
Access kan sagtens lave beregninger. Du følger de normale matematiske metoder, som du også bruger i Excel. I en forespørgsel kan du f.eks benytte disse:

Udtryk1: [felt1]+[felt2]
Udtryk2: [felt1]/[felt2]
Udtryk3: ([felt1]/[felt2])*2

Du sætter simpelthen markøren i en ny tom kolonne, og indtaster dit udtryk.
Avatar billede quqdk Praktikant
01. december 2010 - 08:54 #2
Hmm... jeg er vist lidt blank...

Jeg opretter en forespørgsel med guide, vælger de ting der skal være i forespørgelsen og skriver i et tomt felt...
Men når jeg skriver i feltet, får jeg en fejlmedd. som fortæller mig at jeg har indtastet tekst eller et tal i en numerisk felt, der er større end hvad feltstørrelsen tillader....?!

Jeg skal have lavet en beregning med 2 datoer, hvor jeg trækker dem fra hinanden, så jeg har et tal i minutter...

Kan du hjælpe mig med dette? :)
Avatar billede mugs Novice
01. december 2010 - 09:02 #3
"tekst eller et tal i en numerisk felt, der er større end hvad feltstørrelsen tillader"

tyder på, at du har en feltstørrelse i tabellen som f.eks. Byte. Hvis du så indtaster et tal som er større end feltstørelsen (Byte) tillader, vil denne fejl opstå. Juster feltstørrelsen i tabellen.
Men når du beregner er det ikke nødvendigt et gemme beregningerne i tabellen, du kan jo blot beregne igen.

En datoberegning som du skitserer kan se således ud:

Udtryk1: (DateDiff("n";[Dato1];[Dato2]))
Avatar billede quqdk Praktikant
01. december 2010 - 09:07 #4
------
SELECT Ny.Ønsket, Ny.Kontrol, Ny.Forsinket, Ny.Bestilling
FROM Ny;
------


Først skal jeg beregne forskellen imellem Ønsket og Bestilling. Datoformatet er dd-mm-åååå tt:mm:ss
Hvis der er mindre end 90 minutter imellem dem, skal der ligges xx minutter til Ønsket, således at der er 90 minutter imellem.

Dernæst skal jeg have beregnet "Forsinket". Dette sker ved at trække Kontrol fra Ønsket, og hvis der er forsinkelse skal dette skrives som minutter i feltet Forsinket. Hvis ikke, skal der stå 0.

Kan du give et hint om hvad jeg skal skrive?
Avatar billede mugs Novice
01. december 2010 - 09:16 #5
Jeg vender tilbage - Skal lige have lavet lidt at det, jeg får løn for.
Avatar billede quqdk Praktikant
01. december 2010 - 09:54 #6
hehe, helt i orden :)
Du må bare skrive når du har tid.
Avatar billede mugs Novice
01. december 2010 - 09:55 #7
SELECT ny.ønsket, ny.bestilling, ny.kontrol, (DateDiff("n",[ønsket],[bestilling])) AS Udtryk1, IIf([Udtryk1]<90,(90-[udtryk1])+[Udtryk1],"") AS Udtryk2, DateDiff("n",[ønsket],[kontrol]) AS Udtryk3
FROM ny;
Avatar billede quqdk Praktikant
01. december 2010 - 10:13 #8
Så er det kopieret ind i en forespørgsel.. men hvis jeg går tilbage til tabellen i dataarkvisning, og vil ændre forsinket fra tal til forespørgsel, fortæller programmet mig at "Der findes ingen gyldige felter i ny forespørgsel. Du har måske valgt en forespørgsel der bruger den tabel du er ved at tilføje opslagskolonnen til".

Hvad gør jeg forkert her?
Min database ligger her: www.quq.dk/db1.mdb
Avatar billede mugs Novice
01. december 2010 - 10:24 #9
Du skriver:

"Dette sker ved at trække Kontrol fra Ønsket, og hvis der er forsinkelse skal dette skrives som minutter i feltet Forsinket"

Jeg har feltet forsinket som et datofelt fordi du ønsker resultater i minutter.

Du bør ikke gemme beregningerne i tabellen, du kan jo blot genberegne dem, når du ønsker. De udtryk jeg beregner gemmes ikke i tabellen.
Avatar billede quqdk Praktikant
01. december 2010 - 10:31 #10
Oh... så hvid jeg ønsker et print med alle data, skal jeg oprette en rapport, og tage alle felterne med, men alligevel står der intet i forsinket..?
Avatar billede mugs Novice
01. december 2010 - 10:40 #11
Du opretter blot rapporten på baggrund af din forespørgsel, så kommer alle udtrykkene med.

Hvis du lægger sin e-mail, kna jeg sende dig et eksempel.
Avatar billede quqdk Praktikant
01. december 2010 - 10:46 #12
me@quq.dk kan du bruge :)
Avatar billede mugs Novice
01. december 2010 - 10:52 #13
Sendt.
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