Avatar billede yuksel Nybegynder
20. april 2005 - 10:53 Der er 7 kommentarer og
1 løsning

Beregning i en database felt!

Hej til alle.

jeg har lavet en tabel, som har 6 felter
men felt 5 og 6 skal indholde noget beregning som er lavet
udfra felt 1, 2 og 3.

jeg ved godt at man kan i vb med sql læse fra tabellen lave beregningen og update det hele inklusive felt 5 og 6 som færdigt beregnet.


men er det ikke mulligt at sætte regnstykket i feltet (6)(standard værdi) således at den regner det ud på felt eller tabel niveu
Avatar billede jkrons Professor
20. april 2005 - 10:54 #1
Nej.
Avatar billede jkrons Professor
20. april 2005 - 10:56 #2
Access kan ikke udføre beregninger eller anden håndtering af data fra et felt i et andet felt på tabelniveau.
Avatar billede jesperfjoelner Nybegynder
20. april 2005 - 11:15 #3
Kan du fortælle os hvorfor du ønsker beregningner gemt?
Tommelfingerreglen er at man ikke bør gemme beregninger i felter i tabellerne. De skal i stedet blot vises når man kører en forespørgsel eller viser data på en formular, hvor det kan gennemregnes hver gang.
Ulempen ved at beregnede data i tabeller kan være at hvis præmisserne/beregningen ændrer sig kan mange data pludselig være beregnet forkert.
Der kan være helt specielle situationer, hvor man kan gøre det men generelt bør man ikke. Og som nævnt kan det ikke lade sig gøre på tabelniveau.
Avatar billede jensen363 Forsker
20. april 2005 - 11:29 #4
hippokrates > der kan forekomme situationer, hvor det af performancehensyn er absolut anbefalelsesværdigt at præ-beregne data i tabellen ... især hvis hvis man arbejder med frontend/backend databaser i netværk
Avatar billede jkrons Professor
20. april 2005 - 11:32 #5
jensen363-> Du har helt ret. Men til gengæld er min erfaring, at man ofte oplever at gevinsten "spises op", hvis man skal genberegne og lagre sine data beregnede jævnligt.
Avatar billede jensen363 Forsker
20. april 2005 - 11:36 #6
Det afhænger naturligvis af opdateringsfrekvensen :o)
Avatar billede jesperfjoelner Nybegynder
20. april 2005 - 11:37 #7
jensen 363 > jeg er enig. Jeg har selv et par stykker kørende som bruger beregninger og lagrer dem. Men jeg mener at 1.gangs-anbefalingen må være ikke at gøre det indtil vi hører lidt mere om hvad det er for et problem, der skal løses.
Avatar billede tofferman Nybegynder
23. april 2005 - 02:22 #8
Skal vi ikke prøve at vende tilbage til hans spørgsmål i stedet for, og bare forudsætte at han har en god grund til at gemme beregningerne?

Ideen med standardværdien dur ikke, da man ikke kan foretage beregninger med værdier fra andre felter. Kun enkelte funktioner såsom konstanter og Date() kan bruges.

Men problemet er da ikke så stort hvis du anvender en UPDATE-forespørgsel som f.eks.:

UPDATE tabelnavn SET felt5=felt1+felt2+felt3, felt6=felt3-felt2-felt1;

Hvis du indtaster data via en formular kan du få en makro til at køre denne forespørgsel efter opdatering af den indtastede record. Hvis du har mange data i tabellen vil det nok være smart at lægge et kriterie ind så du ikke skal beregne hele tabellen hver gang.
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

IT-JOB

Politiets Efterretningstjeneste

IT Sikkerhedsarkitekt i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef til Cyber Security Guidance ved Cyberdivisionen i Forsvaret

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Netværkstekniker til Forsvarets Cyberdivision i Hvidovre – Er det dig?

Netcompany A/S

Test Consultant