Hej alla, igen!
Jag har en uppdateringsbar webbsida där man ska fylla i olika tal i olika fält. Datatypen i Access-databasen är tal och obligatorisk är satt till nej. Men man måste alltid skriva i en nolla i input-fältet , det går inte att lämna fältet tomt för då blir det "type missmatch". Kan nån berätta varför?
LarsGMedlem sedan dec. 200012 464 inlägg Därför att "" inte är ett giltigt tal och det är inte heller samma som null.
Du kan ju lägga till så att du i din kod ontrollerar om fältet är tomt och i så fall lägger dit 0
c = request.form("canape")
if c = "" then c = "0"
Ok, misstänkte det. Det är bara det att jag har 34 fält så det blir lite bökigt...
IF RS("v23") ="" Then
RS("v23") ="0"
Else
RS("v23") = Request.Form("v23")
End IF
IF RS("v24") ="" Then
RS("v24") ="0"
Else
RS("v24") = Request.Form("v24")
End IF
IF RS("v25") ="" Then
RS("v25") ="0"
Else
RS("v25") = Request.Form("v25")
End IF
Men det är väl bara att börja knappra på.
Tack för hjälpen!
@ndersMedlem sedan juni 200032 969 inlägg Eller så skapar du en liten funktion...
Function GetRequestNumber(strKey)
If Trim(Request.Form(strKey)) = "" then
GetRequestNumber = "0"
Else
GetRequestNumber = Request.Form(strKey)
End IF
End Function
Sedan byter du bara ut dina Request.Form ("fält") i koden till GetRequestNumber("fält").
Mvh,
Fattar tyvärr inte hur jag gör detta:
Sedan byter du bara ut dina Request.Form ("fält") i koden till GetRequestNumber("fält")
LarsGMedlem sedan dec. 200012 464 inlägg ...
RS("v24") = GetRequestNumber("v24")
RS("v25") = GetRequestNumber("v25")
...
eller om fälten heter V1 till v35
for i = 1 to 35
rs("v" & i) = GetRequestNumber("v" & i)
next
@ndersMedlem sedan juni 200032 969 inlägg Istället för det som blir fel, som jag antar ser ut typ så här:
RS("v25") = Request.Form("v25")
och istället för det du skrivit med ifsatserna ovan:
IF RS("v25") ="" Then
RS("v25") ="0"
Else
RS("v25") = Request.Form("v25")
End IF
skriver du
RS("v25") = GetRequestNumber("v25")
Mvh,
OK, tackar tackar. Ska testa!
Ja nu funkar det att man inte behöver skriva dit en nolla men om man ska uppdatera igen står det nollor där man tidigare lämnat fältet tomt. Kan detta undvikas? Kanske kan vara förvirrande, eller är jag för petig..?
Kanske ska förklara att det gäller veckor och hur många timmar man jobbar med ett visst projekt den veckan.
LarsGMedlem sedan dec. 200012 464 inlägg Du kan ju göra en funktion som du använder när du fyller i fälten med värden från databasen
function replaceZero(str)
if str = "0" then replaceZero = "" else replaceZero = str
end function
response.write "<input type='text' name = 'v24' value='" & replaceZero(rs("V24")) & "'>"
Tack så mycket för er hjälp! Det blev jätte-bra!