01. december 2010 - 08:34Der 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? :)
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:
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...
"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:
------ 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.
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;
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".
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.