Det låter som en mycket bra och lovvärd vana, men hur skall en stackars nybörjare som jag veta detta?
Det vet inte en stackars nybörjare, det är däremot något som en stackars nybörjare lär sig, till exempel vid ett dylikt tillfälle. :)
Du använder Cstr() för att konvertera numeriskt värde till string, eller hur?
Ja och nej - jag använder Cstr() för att konvertera värde av någon typ till en sträng. Det kan vara ett värde av en taltyp, eller datumtyp exempelvis.
är det samma tänkande som för CDate? Vilka tillfällen skall detta användas?
Ja, Cstr() och CDate() är närbesläktade funktioner, de konverterar bara värdet till olika subtyper. Ett bra exempel på när du oftast är tvungen att göra en konvertering med CDate() är vid en jämförelse mellan ett inmatat värde och dagens datum.
' Exempel som skall vara felaktigt eftersom en sträng med ett datum i aldrig är samma sak som ett datumvärde:
strDate = Request.Form("datum")
' kolla om man matat in idag
if strDate = date then
' jäää!
end if
' Fungerande exempel:
strDate = Request.Form("datum")
[b]strDate = CDate(strDate)[/b]
' kolla om man matat in idag
if strDate = date then
' jäää!
end if
Kan Du ge exempel på dessa funktioner? Och finns det tillfälle då det är direkt felaktigt att använda CDate()?
Exempel på funktioner som normalt (hrmpf) kräver att mottaget värde är av subtypen datum är flera av de du använt i din kod. FormatDateTime(), WeekDay(), DatePart(), DateDiff(), Year(), osv.
Ja, det finns tillfällen då det är direkt felaktigt att använda CDate. Alla värden är nämligen inte direkt konverterbara till datum. Om du har en sträng som innehåller inte endast består av ett datum, då kommer du få ett felmeddelande, type mismatch. Därför bör man, om man inte vet att variabelinnehållet alltid är ett giltigt datum, kontrollera med IsDate() innan man försöker sig på en konvertering till subtypen datum. Ett exempel är om en användare ska mata in ett datum manuellt i ett formulär, då vet du ju inte med säkerhet att datumet är giltigt.
If IsDate(strDatum) then
' jepp, det är ett datum, gör det du ska
else
' nepp, inget datum, visa meddelande för användaren, "gör om gör rätt"!
end if
Hoppas en del klarnat i alla fall.
Mvh,