Avatar billede lach Juniormester
20. august 2018 - 20:28 Der er 6 kommentarer og
2 løsninger

If sætning

Hvad er der galt i denne if sætning?

<%
if request.form ("antaldage") > ("" & strDay & "") then
response.redirect("urldato.asp?error=antal")
end if
%>

Som jeg ser det har jeg begge værdier som de skal være, men sætning virker bare ikke.
Avatar billede erikjacobsen Ekspert
20. august 2018 - 20:53 #1
if request.form ("antaldage") > strDay  then

Du skal ikke have stroffer om. Men er det tal, så skal du lige gøre noget mere:

if cint(request.form ("antaldage")) > cint(strDay)  then

PS: Hvorfor lave et projekt i gammeldags ASP?
Avatar billede softspot Forsker
20. august 2018 - 20:56 #2
Hvilke værdier er der i variablen strDay og i form-feltet antaldage?

Forventer du en numerisk sammenligning, eller en strengsammenligning?

Ved strengsammenligning er 2 f.eks. større end 10...

Hvis du skal lave numerisk sammenligning, skal du konvertere værdierne til tal inden du sammenligner dem.
20. august 2018 - 21:00 #3
1. der er afstand i denne: request.form ("antaldage"). Skal være request.form("antaldage").

2.
Har du valideret de data der kommer ind?
Jeg plejer at gøre flg. inden den øvrige kode:
response.write "antaldage-post: " & request.form("antaldage") & vbcrlf
Hvis den ikke giver dig data, så er det nok der du har din fejl.

3. Husk at sikre dig at dine data er så korrekte som muligt. Er det tal så konverter formdata til int osv.

4. Nu er det noget tid siden jeg arbejdede i klassisk .asp, men hvor jeg savner det;).
Er der noget med at man ikke kan lave response.redirect i en if sætning?
Kan ikke helt huske det.
Avatar billede lach Juniormester
21. august 2018 - 18:36 #4
Tak for hurtig svar.
Først skal jeg lige sige. jeg søger en nummerisk sammenligning, :-)

if cint(request.form("antaldage")) > (strDay) then
response.redirect("urldato.asp?error=antal")
end if

Dette eks. giver fejl :"cint owerflow".

Jeg bruger det gamle APS hvor jeg ændre på et gammelt projekt.
Avatar billede arne_v Ekspert
21. august 2018 - 18:49 #5
Maaske CLng fremfor CInt
21. august 2018 - 20:30 #6
@arne_v har ret. Brug cLng, betyder "convert to Long".
Avatar billede erikjacobsen Ekspert
21. august 2018 - 20:55 #7
Cint i gammeldags ASP går fra -32768 til 32767 - er det større tal du har?

Skal der ikke også en Cint eller Clng på din    strDay ?
Avatar billede lach Juniormester
22. august 2018 - 18:25 #8
Mange tak for hjælpen. :-)
Virker fint med cLng.
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

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





CIO
Stort CIO-interview: Lemvigh-Müllers milliard-omsætning er blevet digital