Avatar billede daniel_d Nybegynder
16. august 2005 - 14:41 Der er 21 kommentarer og
1 løsning

Problemer med sammentælling i formular

Jeg har en række felter hvor jeg laver nogle beregninger på og vil til sidst lave en sammentælling - Det virker fint nok hvis alle felterne har data, men da alle felterne ikke nødvendigvis altid skal udfyldes, så får jeg problemet:

Hvis en af mine rækker er tomme vil den ikke tælle sammen.

Jeg tæller simpelt: Me!Total_k = (Me!K_refunderer_1 + Me!K_refunderer_2 + Me!K_refunderer_3 + Me!K_refunderer_4 + Me!K_refunderer_5)

Hvis f.eks. K_refunderer_5 er tom, så bliver Total_k også tom, hvilket jo ikke er meningen... Hvordan laver man så lige en funktion der springer over det tommer felt?????
Avatar billede madschristensen Nybegynder
16. august 2005 - 14:45 #1
Brug iif:

iif(me!K_refunderer_5="";0;me!k_refunderer_5)
Avatar billede daniel_d Nybegynder
16. august 2005 - 14:53 #2
Kan ikke umiddelbart placere den uden fejl - hvor i min kode skal jeg lægge den ind?
Og hvad dækker iif over?
Avatar billede daniel_d Nybegynder
16. august 2005 - 14:57 #3
fandt ud af, at det skulle være komma i stedet for cimikolon, men det hjælper stadig ikke...
Avatar billede madschristensen Nybegynder
16. august 2005 - 15:00 #4
iif= intermidiate if.

Syntax

IIf(expr, truepart, falsepart)

Me!Total_k = (iif(Me!K_refunderer_1="";0;Me!K_refunderer_1)
+ iif(Me!K_refunderer_2="";0;Me!K_refunderer_2) + iif(Me!K_refunderer_3="";0;Me!K_refunderer_3)
+ iif(Me!K_refunderer_4="";0;me!K_refunderer_4) + iif(Me!K_refunderer_5="";0;me!K_refunderer_5)
Avatar billede daniel_d Nybegynder
16. august 2005 - 15:01 #5
Mit udtryk ser sådan her ud:

    Me!Total_k = (IIf(Me!K_refunderer_1 = "", 0, Me!K_refunderer_1) + IIf(Me!K_refunderer_2 = "", 0, Me!K_refunderer_2) + IIf(Me!K_refunderer_3 = "", 0, Me!K_refunderer_3) + IIf(Me!K_refunderer_4 = "", 0, Me!K_refunderer_4) + IIf(Me!K_refunderer_5 = "", 0, Me!K_refunderer_5))



Fra hjælp i Access:

IIf Function
     

Returns one of two parts, depending on the evaluation of an expression.

Syntax

IIf(expr, truepart, falsepart)
Avatar billede daniel_d Nybegynder
16. august 2005 - 15:04 #6
Det må være korrekt med komma istedet for semikolon(ved ikke hvordan det lige var jeg stadede det før :o) ), for det er jo hvad hjælp i access skriver...
Avatar billede madschristensen Nybegynder
16. august 2005 - 15:04 #7
Rettelse:
Me!Total_k = (iif(isnull(Me!K_refunderer_1);0;Me!K_refunderer_1)
+ iif(isnull(Me!K_refunderer_2);0;Me!K_refunderer_2) + iif(isnull(Me!K_refunderer_3);0;Me!K_refunderer_3)
+ iif(isnull(Me!K_refunderer_4);0;me!K_refunderer_4) + iif(isnull(Me!K_refunderer_5);0;me!K_refunderer_5)
Avatar billede madschristensen Nybegynder
16. august 2005 - 15:05 #8
Det kommer an på, om du bruger det i vb(a) eller som udtryk!
Avatar billede madschristensen Nybegynder
16. august 2005 - 15:05 #9
Husk at fjerne linieskift!
Avatar billede daniel_d Nybegynder
16. august 2005 - 15:09 #10
Fandt lige noget kode fra mugs andetsteds som virker perfekt:
Me!Total_k = Nz(Me!K_refunderer_1, 0) + Nz(Me!K_refunderer_2, 0) + Nz(Me!K_refunderer_3, 0) + Nz(Me!K_refunderer_4, 0) + Nz(Me!K_refunderer_5, 0)

Altså Nz(Value,[ValueNULL])

Men smid et svar - du må gerne få pointene, for du har trods alt forsøgt at hjælpe mig :-)
Avatar billede madschristensen Nybegynder
16. august 2005 - 15:10 #11
Nahh - Det er ok. Men virkede sidste version ikke ??? Det gør den her!
Avatar billede daniel_d Nybegynder
16. august 2005 - 15:14 #12
Den brokker sig i hvert fald over semikolon - også i den sidste udgave du kom med...
Avatar billede madschristensen Nybegynder
16. august 2005 - 15:22 #13
Er det i en formular, en forespørgsel eller kode du laver beregningen?
Avatar billede daniel_d Nybegynder
16. august 2005 - 15:57 #14
Det er en formular, hvor jeg har en knap som via noget kode laver nogle beregninger og tæller sammen til sidst.
Avatar billede madschristensen Nybegynder
16. august 2005 - 16:00 #15
Ok - det jeg skrev skulle sættes direkte ind i et felt med = foran. Det er rigtigt, at der skal anvendes komma i vb(a) syntax. Men hvis du har et ubundet felt, og sætter denne her ind: =(iif(isnull(Me!K_refunderer_1);0;Me!K_refunderer_1)
+ iif(isnull(Me!K_refunderer_2);0;Me!K_refunderer_2) + iif(isnull(Me!K_refunderer_3);0;Me!K_refunderer_3)
+ iif(isnull(Me!K_refunderer_4);0;me!K_refunderer_4) + iif(isnull(Me!K_refunderer_5);0;me!K_refunderer_5)
Avatar billede mugs Novice
16. august 2005 - 16:22 #16
Funktionen Nz er for det samme. Her anvendt i en formular:

(Nz([a], 0) + Nz([b], 0))
Avatar billede daniel_d Nybegynder
16. august 2005 - 16:40 #17
Mugs: netop den jeg har brugt...
Avatar billede mugs Novice
16. august 2005 - 16:44 #18
Daniel > Ja det ser jeg nu. Jeg havde ikke læst alle indlæggene før jeg postede mit svar. Afvis venligst mit svar.
Avatar billede daniel_d Nybegynder
17. januar 2006 - 12:40 #19
kom med et svar så jeg kan få lukket...
Avatar billede madschristensen Nybegynder
17. januar 2006 - 12:46 #20
Hvem mig ??
Avatar billede daniel_d Nybegynder
17. januar 2006 - 12:49 #21
ja :)
Avatar billede madschristensen Nybegynder
17. januar 2006 - 12:50 #22
Ok ;O)))
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