Fødselsdags oversigt!
Jeg skal lave et fødselsdags script der fortæller hvor gammel man bliver næste gang man har fødslesdag og hvor mange dage der er til. Navne, datoer og sådan bliver hentet fra en access database.Men hvorfor udskriver den kun nr 4?
Sådan ser scriptet ud:
-----
<%
Session.LCID = 1030
Dim Conn, SQL, RS, ConnStr
ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db1.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnStr
SQL = "SELECT id, fuldenavn, yr, dday, mmonth, ondate, DateSerial(Year(DateSerial(Year(Now),Month(ondate),Day(ondate)))-" &_
"Sgn(DateDiff('yyyy',DateSerial(Year(DateSerial(Year(Now),Month(ondate),Day(ondate)))+" &_
"(Sgn(DateDiff('y',DateAdd('d',1,DateSerial(Year(Now),Month(ondate),Day(ondate))),Now))+1)," &_
"Month(DateSerial(Year(Now),Month(ondate),Day(ondate)))," &_
"Day(DateSerial(Year(Now),Month(ondate),Day(ondate)))),Now))," &_
"Month(DateSerial(Year(Now),Month(ondate),Day(ondate)))," &_
"Day(DateSerial(Year(Now),Month(ondate),Day(ondate)))) AS new_date FROM data ORDER BY " &_
"DateSerial(Year(DateSerial(Year(Now),Month(ondate),Day(ondate)))-" &_
"Sgn(DateDiff('yyyy',DateSerial(Year(DateSerial(Year(Now),Month(ondate),Day(ondate)))+" &_
"(Sgn(DateDiff('y',DateAdd('d',1,DateSerial(Year(Now),Month(ondate),Day(ondate))),Now))+1)," &_
"Month(DateSerial(Year(Now),Month(ondate),Day(ondate)))," &_
"Day(DateSerial(Year(Now),Month(ondate),Day(ondate)))),Now))," &_
"Month(DateSerial(Year(Now),Month(ondate),Day(ondate)))," &_
"Day(DateSerial(Year(Now),Month(ondate),Day(ondate))));"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open SQL, Conn, 3, 1
RS.MoveFirst
Do While Not RS.EOF
If RS("mmonth") = month(now) and RS("dday") = day(now) then
Response.Write "<b>Tillykke til " & RS("fuldenavn") & " som bliver " & (year(now) - RS("yr")) & " aar i dag!!! Han er fodt den: " & RS("ondate") & "-" & RS("yr") & " og datoen i dag er: " & date & "<br>"
ElseIf RS("mmonth") = month(now) and RS("dday") < day(now) then
Response.Write RS("fuldenavn") & " bliver " & (year(now) - RS("yr") + 1) & " aar gammel om " & DateDiff("y",Now,RS("new_date")) & " dage... 1 <br> Han er fodt den: " & RS("ondate") & "-" & RS("yr") & " og datoen i dag er: " & date & "<br>"
ElseIf RS("mmonth") = month(now) and RS("dday") > day(now) then
Response.Write RS("fuldenavn") & " bliver " & (year(now) - RS("yr")) & " aar gammel om kun " & DateDiff("y",Now,RS("new_date")) & " dage... 2 <br> Han er fodt den: " & RS("ondate") & "-" & RS("yr") & " og datoen i dag er: " & date & "<br>"
ElseIf month(now) > RS("mmonth") then
Response.Write RS("fuldenavn") & " bliver " & (year(now) - RS("yr") + 1) & " aar gammel om " & DateDiff("y",Now,RS("new_date")) & " dage... 3 <br> Han er fodt den: " & RS("ondate") & "-" & RS("yr") & " og datoen i dag er: " & date & "<br>"
ElseIf month(now) < RS("mmonth") then
Response.Write RS("fuldenavn") & " bliver " & (year(now) - RS("yr")) & " aar gammel om " & DateDiff("y",Now,RS("new_date")) & " dage... 4 <br> Han er fodt den: " & RS("ondate") & "-" & RS("yr") & " og datoen i dag er: " & date & "<br>"
End If
RS.MoveNext
Loop
RS.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
%>
----
Sådan ser outputtet ud:
---
George bliver 15 aar gammel om 3 dage... 4
Han er fodt den: 03-08-1987 og datoen i dag er: 31-07-2002
Henrik bliver 47 aar gammel om 155 dage... 4
Han er fodt den: 02-01-1955 og datoen i dag er: 31-07-2002
Troels bliver 16 aar gammel om 223 dage... 4
Han er fodt den: 11-03-1986 og datoen i dag er: 31-07-2002
Hans bliver 17 aar gammel om 306 dage... 4
Han er fodt den: 02-06-1985 og datoen i dag er: 31-07-2002
Erik2 bliver 16 aar gammel om 340 dage... 4
Han er fodt den: 06-07-1986 og datoen i dag er: 31-07-2002
Erik3 bliver 16 aar gammel om 363 dage... 4
Han er fodt den: 29-07-1986 og datoen i dag er: 31-07-2002
Erik bliver 16 aar gammel om 364 dage... 4
Han er fodt den: 30-07-1986 og datoen i dag er: 31-07-2002
---
Det output virker bare ikke.... Det er forkert for alle menneskerne bliver formateret i nr 4.
Hvordan får jeg det til at virke rigtigt?
///Troels