Avatar billede lady Novice
01. maj 2006 - 08:14 Der er 21 kommentarer og
1 løsning

Sammentælling med blanke felter

Jeg har lavet en forespørgsel med 5 felter som skal sammentælles til ny felt.
Der er altid et beløb i det første felt, de andre kan være blanke.
Problemet er at hvis de øvrige fleter er blanke bliver tallet fra det 1. felt ikke skrevet i det sidste.
Kan der gøre noget ved det???
Avatar billede Slettet bruger
01. maj 2006 - 08:17 #1
Du kan sætte kilden i det nye felt til at være:

= felt1 + felt2 + felt3 + felt4 + felt5
Avatar billede Slettet bruger
01. maj 2006 - 08:37 #2
Hvis det skal være i en forespørgsel, så:

Nyfelt: [felt1]+[felt2]+[felt3]+[felt4]+[felt5]
Avatar billede eagleeye Praktikant
01. maj 2006 - 08:38 #3
Hvis problemet er du få en blank værdi ud så prøv denne nz returnere enten tallet i feltX og hvis feltX er tomt returnere den en anden værdi som her er sat til 0:

nz(felt1, 0) + nz(felt2, 0) + nz(felt3, 0) + nz(felt4, 0) + nz(felt5, 0)
Avatar billede Slettet bruger
01. maj 2006 - 08:45 #4
Jeg så det også lige, men jeg kan faktisk ikke rigtig få sammentællingsfeltet til at komme med en sum, selvom jeg bruger nz!~)
Avatar billede eagleeye Praktikant
01. maj 2006 - 08:56 #5
hvis det er i en forspørgelse så skulle dette gerne give et tal:

SELECT (nz(felt1,0) + nz(felt2,0) + nz(felt3,0) + nz(felt4,0) + nz(felt5,0)) as nytfelt ..
Avatar billede Slettet bruger
01. maj 2006 - 09:03 #6
Ja, nu kan jeg også få det til at virke!~)

som eagleeye siger, så ser forespørgslen sådan ud:

SELECT (nz(felt1,0)+nz(felt2,0)+nz(felt3,0)+nz(felt4,0)+nz(felt5,0)) AS Nyfelt
FROM Tabel1;

Du retter navnene til og så indsætter koden i SQL-visningen af forespørgslen, så kan du gå i designvisning og tilføje ekstra felter til din forespørgsel!~)
Avatar billede Slettet bruger
01. maj 2006 - 09:04 #7
eagleeye>jeg var selv kommet til at bruge ; i stedet for ,
Avatar billede lady Novice
01. maj 2006 - 09:34 #8
Jeg har prøvet forslagene som er rettet til sådan her:
Salgspris: SELECT(nz(ny grundpris,0)+nz(a/c tilslutningsafgif,0)) AS salgspris from grunde;
men får følgende:
Syntaksen til underforespørgslen i dette udtryk er forkert.
kontroller syntaksen, og omslut underforespørgslen med paranteser,
2.
Avatar billede mugs Novice
01. maj 2006 - 10:03 #9
SELECT(nz[ny grundpris,0]+nz[a/c tilslutningsafgif,0]) AS salgspris from grunde;
Avatar billede mugs Novice
01. maj 2006 - 10:03 #10
Hovsa:

SELECT(nz[ny grundpris;0]+nz[a/c tilslutningsafgif;0]) AS salgspris from grunde;
Avatar billede eagleeye Praktikant
01. maj 2006 - 10:04 #11
når du har / i kolonne navnet så skal der klammer [] omkring så prøv:


SELECT(nz(ny grundpris,0)+nz([a/c tilslutningsafgif],0)) AS salgspris from grunde;
men får følgende:
Avatar billede eagleeye Praktikant
01. maj 2006 - 10:05 #12
og den føste er der mellemrum i så der gælder det samme :)
Avatar billede eagleeye Praktikant
01. maj 2006 - 10:07 #13
Så det bliver:

SELECT (nz([ny grundpris],0)+nz([a/c tilslutningsafgif],0)) AS salgspris from grunde;
Avatar billede mugs Novice
01. maj 2006 - 10:11 #14
Det er en uskik med specialtegn / mellemrum i objektnavne. Det giver ike andet en bøvl senere hen ;o)
Avatar billede lady Novice
01. maj 2006 - 10:49 #15
Jeg jar prøvet at kopiere eageeye's sætning imd i forespørgslen så den kommer til at se sådan ud:
Salgspris: SELECT (nz([ny grundpris],0)+nz([a/c tilslutningsafgift],0)) AS salgspris from grunde;
Jeg får samme fejl som ovenfor og SELECT er markeret med sort.
Avatar billede mugs Novice
01. maj 2006 - 11:02 #16
SELECT grunde.([ny grundpris], grunde.([a/c tilslutningsafgift],(Nz([ny grundpris],0)+Nz([a/c tilslutningsafgift],0)) AS Udtryk1
FROM grunde;
Avatar billede eagleeye Praktikant
01. maj 2006 - 11:10 #17
Er det helt samme fejl?
Hvor køre du forspørgelsen, er det via forspørgelse tabben?
Avatar billede lady Novice
01. maj 2006 - 11:35 #18
Jeg ikke rigtig om det er mig der ikke lige har forstået det.
Nu har jeg prøvet mugs' forslag som ser så ud.
Salgspris: SELECT (grunde.([ny grundpris], grunde.([a/c tilslutningsafgift],(Nz([ny grundpris],0)+Nz([a/c tilslutningsafgift],0)) AS salgspris from grunde;
Foran select har sat feltets navn og som udtryk1 har salgspris. Er det korretkt?

Det er samme fejl og jeg kører i en forespørgsel som er oprettet fra tabeller.
Avatar billede eagleeye Praktikant
01. maj 2006 - 11:47 #19
Prøv at sætte () omkring hele SQL sætningen:


Salgspris: (SELECT (nz([ny grundpris],0)+nz([a/c tilslutningsafgift],0)) AS salgspris from grunde;)
Avatar billede mugs Novice
01. maj 2006 - 13:00 #20
En meget simpel SQL kan se således ud:

SELECT (Nz([felt1],0)+Nz([felt2],0)) AS Udtryk1
FROM Tabel1;

Du skriver Salgspris: SELECT ....
Hvis salgspris er et felt i tabellen kan du ikke gøre det sådan. Du bør ikke gemme en beregning i tabellen, hvis beregningen kan foretages i forespørgslen. Hvis du vil gemme resultatet i tabellen, skal du i VBA sætte feltet Salgspris = beregningen i stil med dette:

Me!Salgspris = Nz([Me.feltnavn1],0)+Nz([Me.feltnavn2],0))

Eller prøv denne i en forespørgsel 
SELECT (grunde.([ny grundpris], grunde.([a/c tilslutningsafgift],(Nz([ny grundpris],0)+Nz([a/c tilslutningsafgift],0)) AS Udtryk1 from grunde;
Avatar billede kjulius Novice
01. maj 2006 - 22:30 #21
Hmm... Det undrer mig, at sætningen hver gang starter med

Nypris: SELECT ....

Hvis det betyder, at det er et udtryk, som skal indsættes i grid'en, så bør det vist bare være:

Salgspris: nz([ny grundpris],0) + nz([a/c tilslutningsafgift],0)

Det ville i hvert fald forklare de store problemer med at få det til at virke ;-)
Avatar billede lady Novice
02. maj 2006 - 07:59 #22
Nu kan jeg få beløbet frem, men så er der et nyt problem når jeg fletter til word og jeg sætter feltet ind så kommer beløbet ikke med over. er der så en forklaring på det???
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