webForumDet fria alternativet

lite if satser igen...

ASP

12 svar · 264 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Frågan#1

Fick en fråga om en sånhär IF sats:
If Tarve >= Lager then ME or if Tarve >=Lager and > ME then (2*ME)

Hm... Tja alltså om Tarve är större än lager blir nånting ME, men om både Tarve är större än lager och ME, då blir svart 2*ME.

Medlem sedan juli 20012 450 inlägg
#2

Vad är frågan?

Medlem sedan sep. 20004 079 inlägg
#3

Va? syns det inte?
Detta är frågan:
If Tarve >= Lager then ME or if Tarve >=Lager and > ME then (2*ME)

Detta är inte en IF sats men en ungefärlig beskriving av hur den ska funka, alltså:
IF Tarve >= Lager THEN
Something = ME
OR IF Tarvet >= Lager AND > ME THEN
Something = ME*2
END IF

Vet inte om nått sånt ens funkar

Medlem sedan juni 200032 967 inlägg
#4

Gissar:

IF Tarve >= Lager THEN Something = ME
IF Tarve >= Lager AND Tarve > ME THEN Something = ME*2

Mvh,

Medlem sedan sep. 20004 079 inlägg
#5

Tja, det kan ju funka, men problemet är att om den andra är sann, så är ju också den första sann, vilken blir då rätt?

Medlem sedan juni 200032 967 inlägg
#6

Den andra är alltid sann om den första är det, men inte tvärtom.

Jag förstår inte var problemet ligger.

Mvh,

Medlem sedan sep. 20004 079 inlägg
#7

Nja, inte jag heller riktigt, undrade bara ifall det kan bli duplicerade värden om båda är rätt osv.(liksom om den första blir 4 och den nadra 8, så då blir det väl inte 48 som slutresultat)?

Medlem sedan mars 20015 287 inlägg
#8

Ingen risk, det blir som du vill ha det.
Den andra "tar ut" den första.

Medlem sedan sep. 20004 079 inlägg
#9

Tja det vill inte funka, såhär ser hela koden ut(ja jag vet att jag använder en förkastligt metod, men detta kommer att köras lokalt 1-2 ggr var 3:de månad):

rs("Bestall") = (Uppdateringar*Medel-Lager-Totalt)
rs.Update
IF Bestall >= Lager THEN 
rs("Forslag") = rs("M_E")
END IF
IF Bestall >= Lager AND Bestall > M_E THEN 
rs("Forslag") = (M_E*2)
END IF
rs("Uppdateringar") = (Uppdateringar+1)
rs.update

Som ni ser så borde ju Beställ uppdateras före IF satsen hoppar igång, men det verkar inte funka eftersom jag har sett poster där Beställ är större än Lager och M_E men M_E har inte fördubblats.

Medlem sedan mars 20015 287 inlägg
#10

Tycker det ser ut som om du blandar en del, iblad är det rs("Bestall") och ibland Bestall . Liksaså rs("M_E") kontra M_E*2
Men du kanske har koll på dessa?

Medlem sedan sep. 20004 079 inlägg
#11

Jo, jag har dom definierade före denna kod:
Medel = rs("Medel")
M_E = rs("M_E")
Totalt = rs("Totalt")
Lager = rs("Lager")
Forslag = rs("Forslag")
Uppdateringar = rs("Uppdateringar")
Bestall = rs("Bestall")

Medlem sedan mars 20015 287 inlägg
#12

Kan det inte vara i denna rad felet ligger?

rs("Bestall") = (Uppdateringar*Medel-Lager-Totalt)

Du menar inte att det ska stå:

rs("Bestall") = (Uppdateringar*(Medel-Lager-Totalt))

Medlem sedan sep. 20004 079 inlägg
#13

Näe, den koden har alltid funkat som den ska, resultaten blir rätt, vilket är varför jag tycker det är konstigt att IF satsen inte funkar.

Konstigt nog, om man kör den igen, så då funkar if satsen, vilket får mig att tro att det är problem med uppdateringen.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)