Får felmeddelandet: Kollade...och ändrade...funkar inte...men har säkert gjort fel. Jag sitter här på jobbet och funderar på vad det är som är fel. Formatera det som ett datum och prova med det Du kan försöka med:Syntaxfel med Function FixDate(pnr)
Kompileringsfel i Microsoft VBScript fel '800a03ea'
Syntaxfel
/sidan/search_users.asp, rad 213
Function FixDate(pnr)
^
...när jag kör följande kod:
<%
DO Until RecSet.EOF OR X = 10
X=X+1
counter = counter + 1
if counter Mod 2 = 0 then
color="#ffffff"
else
color="#eeeeee"
end if
%>
<%
pnr=RecSet("pnr")
Function FixDate(pnr)
Select Case Len(pnr)
Case 6
FixDate = DateSerial(Left(pnr, 2), Mid(pnr, 3, 2), Right(pnr, 2))
Case 8
FixDate = DateSerial(Left(pnr, 4), Mid(pnr, 5, 2), Right(pnr, 2))
End Select
End Function
'För att beräkna ålder kollar man antal år som skiljer födelsedatum mot dagens datum och om personen fyllt år i år:
Function Age(pnr)
Dim Years
Years = DateDiff("yyyy", pnr, Date)
If DateAdd("yyyy", years, pnr) < Date Then
Age = Years
Else
Age = Years -1
End If
End Function
%>
<%
response.write Age(FixDate(pnr))
%>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%
...varför blir det så?
skriver jag...
<%
pnr=RecSet("pnr")
Function FixDate(pnr)
Select Case Len(pnr)
Case 6
FixDate = DateSerial(Left(pnr, 2), Mid(pnr, 3, 2), Right(pnr, 2))
Case 8
FixDate = DateSerial(Left(pnr, 4), Mid(pnr, 5, 2), Right(pnr, 2))
End Select
End Function
'För att beräkna ålder kollar man antal år som skiljer födelsedatum mot dagens datum och om personen fyllt år i år:
Function Age(pnr)
Dim Years
Years = DateDiff("yyyy", pnr, Date)
If DateAdd("yyyy", years, pnr) < Date Then
Age = Years
Else
Age = Years -1
End If
End Function
%>
...överst fungerar det nästan. Det är bara det att alla poster som skrivs ut får det "response.write Age(FixDate(pnr))"-värde som den första har.Sv: Syntaxfel med Function FixDate(pnr)
Skrev följande:
<%
Function GetAge(ByVal vstrBirthDate)
lngYears = DateDiff("yyyy", vstrBirthDate, Now)
If month(vstrBirthDate) > month(now()) Then
lngYears = lngYears - 1
Elseif month(vstrBirthDate) = month(now()) Then
If day(vstrBirthDate) > day(now()) Then
lngYears = lngYears - 1
End If
End If
GetAge = lngYears
End Function
%>
<%=GetAge(RecSet("pnr"))%>
Får då detta felmeddelande:
Körningsfel i Microsoft VBScript fel '800a0006'
Spill: '[number: 19830624]'
/sidan/search_users.asp, rad 185 Sv: Syntaxfel med Function FixDate(pnr)
Kom fram till att det kanske fungerar om man byter typ för en kolumnen i databasen. Just nu är det siffror, testade att byta tilldatum/tid igår men det gick inte. Innehållet i en post ser ut som så här: 19830624. Tror ni att det kan fungera om man ändrar från siffror till text?
...eller hur skall jag få det till att fungera.
...kan inte testa hur jag skall göra här på jobbet.Sv: Syntaxfel med Function FixDate(pnr)
Du säger ett felmeddelande på rad ... vilken rad är det?Sv: Syntaxfel med Function FixDate(pnr)
<code>
<%
Function FixDate(pnr)
Select Case Len(pnr)
Case 6
FixDate = DateSerial(Left(pnr, 2), Mid(pnr, 3, 2), Right(pnr, 2))
Case 8
FixDate = DateSerial(Left(pnr, 4), Mid(pnr, 5, 2), Right(pnr, 2))
End Select
End Function
Function Age(pnr)
Dim Years
Years = DateDiff("yyyy", pnr, Date)
If DateAdd("yyyy", years, pnr) < Date Then
Age = Years
Else
Age = Years -1
End If
End Function
DO Until RecSet.EOF OR X = 10
X=X+1
if X And 1 then
color="#ffffff"
Else
color="#eeeeee"
End if
'För att beräkna ålder kollar man antal år som skiljer födelsedatum mot dagens datum och om personen fyllt år i år:
pnr = RecSet("pnr")
response.write Age(FixDate(pnr))
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%
</code>