webForumDet fria alternativet
Logga in / Bli medlem

Function

ASP

14 svar · 368 visningar · startad av martinpartin

Medlem sedan jan. 2001373 inlägg
Trådstart#1

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.

Medlem sedan apr. 20003 174 inlägg
#2

typ..

[red]Function dateCheck(strDate)

	If Len(strDate) <> 10 Then dateCheck = "" Else dateCheck = strDate

End Function

...

dateCheck(Request.Form("c_requestdate"))[/red]
Medlem sedan feb. 200112 078 inlägg
#3

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)
Medlem sedan jan. 2001373 inlägg
#4

ahha så sant ! ändrar direkt ! tack.

vad är noll värde för datum format ?

Medlem sedan feb. 200112 078 inlägg
#5

Allt som inte rekogniceras som ett datum, alltså ett giltigt datum eller datumformat, returnerar False från isDate().

isDate(#2003-02-29#) &raquo; False (29 feb finns inte, eftesom 2003 inte är ett skottår)
isDate("November 13, 1975") &raquo; True

Siffran noll (0) returnerar således False.

Medlem sedan jan. 2001373 inlägg
#6

ok ! shysst tack ! :)

Medlem sedan feb. 200112 078 inlägg
#7

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.

Medlem sedan jan. 2001373 inlägg
#8

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"))
Medlem sedan juni 200032 967 inlägg
#9

Du ska använda null, fast utan # eller andra literaler.

Medlem sedan jan. 2001373 inlägg
#10

Ok ! accepterar !

Medlem sedan feb. 200112 078 inlägg
#11

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.

Medlem sedan jan. 2001373 inlägg
#12

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 ?

Medlem sedan feb. 200112 078 inlägg
#13

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?

Medlem sedan jan. 2001373 inlägg
#14

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") &"')"

:)

Medlem sedan jan. 2001373 inlägg
#15

strunta i denna, det är löst. Den ursprungliga från är besvarad ! Tack! :)

258 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)