Hej!, Skulle vilja fatta hur jag gör en egen function
Dim i_datecount, str_date
str_date = Request.Form("c_requestdate")
i_datecount = Len(str_date)
If i_datecount <> 10 then
str_date = ""
Else
End If
Jag har flera strängar som ska gå ignom denna och vill återanvända koden. Alltså det är strdate som kommer vara det värde som kommer in i funktionen och ska returneras om det har rätt antal karaktärer. Hur anropar jag den osv. ?
hittar inte nån riktigt bra förklaring.
PalleMedlem sedan apr. 20003 174 inlägg typ..
[red]Function dateCheck(strDate)
If Len(strDate) <> 10 Then dateCheck = "" Else dateCheck = strDate
End Function
...
dateCheck(Request.Form("c_requestdate"))[/red]
OveRRidEMedlem sedan feb. 200112 078 inlägg En liten fråga bara, varför kontrollerar du ifall datumet är 10 tecken långt? Är det inte bättre att kolla ifall det är ett datum med den inbyggda funktionen isDate() istället, och sedan göra datumet till vbShortDate (10 tecken) med FormatDateTime()?
Att stränghantera datum brukar vara dumt eftersom datumformen kan komma att ändras på t.ex. en annan server.
If isDate(request.form("c_requestdate")) then response.write FormatDateTime(request.form("c_requestdate"),2)
ahha så sant ! ändrar direkt ! tack.
vad är noll värde för datum format ?
OveRRidEMedlem sedan feb. 200112 078 inlägg Allt som inte rekogniceras som ett datum, alltså ett giltigt datum eller datumformat, returnerar False från isDate().
isDate(#2003-02-29#) » False (29 feb finns inte, eftesom 2003 inte är ett skottår)
isDate("November 13, 1975") » True
Siffran noll (0) returnerar således False.
OveRRidEMedlem sedan feb. 200112 078 inlägg Om något av svaren löste ditt problem, markera då detta inlägg med "Acceptera som slutgiltigt svar". Du hittar länken till höger nere i inlägget.
men om datumet inte finns och det ska läggas blankt.. då blir det felmeddelande i SQL-satsen. har testat med null o 0 osv..
Function checkdate(str)
str = Trim(str)
If IsDate(str) Then
checkdate = str
checkdate = Replace(checkdate,"\","-")
checkdate = Replace(checkdate,"/","-")
Else
checkdate = 0
End If
End Function
Dim str_opendate
str_opendate = checkdate(Request.Form("c_opendate"))
@ndersMedlem sedan juni 200032 969 inlägg Du ska använda null, fast utan # eller andra literaler.
OveRRidEMedlem sedan feb. 200112 078 inlägg Du skall inte använda ' (apostrofer) när du hanterar datum i Access. (Jag antar att det är Access du använder?) I Access skall du innesluta datum i #.
select * from tblUgh where UghDate = #" & str_opendate & "#
När jag tänker efter dock, vet jag inte hur en tom sträng mot ett datumfält kommer reagera, men jag funderar på ifall det inte är gränssnittets uppgift att se till att det datum som kommer in i databasen faktiskt är ett datum. Om det inte är det, skall inte SQL:en köras alls enligt min mening.
RED. Felskrivning.
Syntax error in date in query expression '##'. .......
Ok det är kanske enda lösningen !. får ta bort den ur SQL frågan om inget datum existerar ?
OveRRidEMedlem sedan feb. 200112 078 inlägg Som jag misstänkte.
Nej, SQL-frågan skall väl inte köras alls ifall det inte är något datum angivet? Eller skall alla returneras om datumet är tomt?
hmm.. Det är ett INSERT statement.. Där det är 7 olika datum fält.
Och det är inte alltid det behöver finnas ett datum. så jag vill alltså lägge in en post i ett access fält som är av typ datum och som är tom.
Går det att lösa detta på nått sätt ?
Ex. kolla det fetstilade 5 mil åt höger på skärmen...
SQL01 = "INSERT INTO 4ExemptionIssues (IssueOpenDate, IssueDescription, BelToFseeCompName, BelToStoreName, BelToMandatory, Breach, CatalogueIssue, BelToExemptionStatus) Values([B]#"& str_opendate &"#[/B], '"& str_issuedesc &"', '"& Request.Form("c_store_1") &"', '"& Request.Form("c_store_2") &"', '"& Request.Form("c_mand_2") &"', "& str_breach &", "& str_catissue &", '"& Request.Form("c_status") &"')"
:)
strunta i denna, det är löst. Den ursprungliga från är besvarad ! Tack! :)