Toon posts:

Booleans ASP en MS ACCESS

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik loop tegen een probleem aan met een checkbox. Wanneer de checkbox de waarde false terug geeft, krijg ik de melding: Data type mismatch in criteria expression. En wanneer de waarde True is, dan wordt de waarde veranderd in de database.

If (CStr(Request.Form("Archief")) = ("True")) then
Visible = "1"
end if

If (CStr(Request.Form("Archief")) = ("False")) then
Visible = "0"
end if

ItemStartDate = MakeDate(ItemStartDate)
ItemEndDate = MakeDate(ItemEndDate)
response.write("Maand = " &(ItemStartDate) &"<BR>")
MM_editQuery = "UPDATE Items SET ItemTitle = '" &ItemTitle &"', ItemText = '" &ItemText &"', ItemStartDate = " &ItemStartDate &", ItemEndDate = " &ItemEndDate &", ItemVisible= '" &Visible &"' , Location= '" &ItemLocation &"' WHERE ItemId = " &ItemId

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Ik meen mij te herinneren dat het On en Off is in access i.p.v. 1 en 0. Daarnaast zijn 1 en 0 integers dus daar zet je geen ' ' om heen in je statement.

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 21-04 20:50
Waarschijnlijk heb je de checkbox als volgt gemaakt:

HTML:
1
<input type="checkbox" name="Archief" value="True" />


In Request.Form("Archief") zal in dat geval "True" staan als het vinkje is gezet, maar het zal leeg zijn ("") als het vinkje niet is gezet.

Je kunt dus beter je code herzien naar:
ASP.NET Visual Basic:
1
2
3
4
5
If Request.Form("Archief") = "True" Then
  Visible = "1"
Else
  Visible = "0"
End If


In dat geval weet je namelijk zeker dat Visible gevuld is.

(Verder kan het misschien 'slim' zijn om i.p.v. "1" en "0" gewoon "True" en "False" in de sql te zetten.)

[ Voor 22% gewijzigd door Flard op 07-12-2005 12:39 ]


  • Aapje
  • Registratie: Maart 2003
  • Laatst online: 21-04 13:56

Aapje

Opel-beun
Het is handig om het zonder de quotes te doen..
Visual Basic:
1
2
3
4
5
If Request.Form("Archief") <> "" Then 
  Visible = 1
Else
  Visible = 0 
End If

^^ kijkt ie of archief bestaat, zoja: visible 1, zoniet visible 0 :)
Volgens mij een stuk makkelijker ;p


Veder zit ASP met een stom foutje als dat nog niet opgelost is...
Waar/Onwaar = voor NL Webserver
True/False = voor ENG Webserver

Beste is gewoon 1/0 te gebruiken :)

[ Voor 63% gewijzigd door Aapje op 07-12-2005 12:45 ]


Verwijderd

Topicstarter
Bedankt. Ik heb mijn code maar herzien.