I Inferis Medlem sedan sep. 2000 667 inlägg Trådstart 2 maj 2003 11:18 #1 Varför fungerar inte följande kod? Även om alla poster är tomma så skrivs ändå Felutskrift ut...
Kod:
<% if Recset("1") = "0" AND Recset("2") = "" AND Recset("3") = "" AND Recset("4") = "" AND Recset("5") = "0" Then
response.write "Felutskrift"
else %>
cyprys Medlem sedan dec. 2000 3 563 inlägg Du får nog skriva ut datatyper för samtliga kolumner samt koden du använder för att generera ovanstående.
I Inferis Medlem sedan sep. 2000 667 inlägg Att köra dem en och en fungerar. Det är när man använder AND som det inte fungerar.
I Inferis Medlem sedan sep. 2000 667 inlägg set Recset= Connect.execute ("SELECT * FROM [tabell] Where [id] = '"& request.querystring("id") &"'")
Ett fält är av typen tal. Har bara värden 0 eller 1.
Jesper T Medlem sedan nov. 2001 7 144 inlägg Är "id" tal, så skall du ta bort enkelfnuttarna runt ReQuest.QueryString("id")
I Inferis Medlem sedan sep. 2000 667 inlägg Bara skrev koden förenklad.
Den fungerar att hämta och skriva ut osv.
Det är bara när man använder AND i ifsatsen som det inte fungerar.
I Inferis Medlem sedan sep. 2000 667 inlägg Förenklat:
if rs("1") = "" AND rs("2") = 0 Then
kör varken html eller kod
else
kör html och kod
end if
Trots att rs("1") är tom och rs("2") (tal) är 0 så kör den kod och html.
@nders Medlem sedan juni 2000 32 967 inlägg Tom? Är det inte null då? Null != "".
I Inferis Medlem sedan sep. 2000 667 inlägg Om man öppnar Access så är Rs1 blank och Rs2 har en nolla.
@nders Medlem sedan juni 2000 32 967 inlägg Vad är fältet 1 för datatyp då? I talfält kan inte strängar (nej, inte ens tomma strängar) lagras, och då är värdet null.
If Isnull(rs("1")) and Clng(rs("2")) = 0 then
I Inferis Medlem sedan sep. 2000 667 inlägg @nders:
Din kod gjorde precis samma sak som min.
I Inferis Medlem sedan sep. 2000 667 inlägg Fält 1 är text och fält 2 är tal.
@nders Medlem sedan juni 2000 32 967 inlägg Okej. Du är säker på att det inte sparats något mellanslag eller så? Prova att skriva ut dess värden, så du ser vad det är du jämför med.
Response.write "¤" & rs("1") & "¤" & rs("2")
Mvh
I Inferis Medlem sedan sep. 2000 667 inlägg Fick ¤0¤
(skrev ut fältet tal först)
cyprys Medlem sedan dec. 2000 3 563 inlägg If len([b]trim[/b](rs("1"))) = 0 and Clng(rs("2")) = 0 then
?
@nders Medlem sedan juni 2000 32 967 inlägg Anledningen till soltecknen var att du skulle ha textfältet där för att se om där skräpade mellanslag.
@nders Medlem sedan juni 2000 32 967 inlägg Då får du se till att antingen inte lagra bara mellanslag i fältet, eller så får du använda Trim().
If Trim(rs("1")) = "" and rs("2") = "0" then
@nders Medlem sedan juni 2000 32 967 inlägg Det verkar som att du behöver lite bättre kontroll på vad du lagrar i tabellen. Defaultvärde 0 på talfälten kanske kunde passa, och något som ser till att inte endast mellanslag lagras i ett textfält.
Mvh