09. december 2003 - 15:55Der er
23 kommentarer og 1 løsning
"Fødselsdag i denne måned"-liste udfra CPR-numre !
Hvordan laver jeg en liste over "fødselsdage i denne måned" med NAVN, DAG OG ALDER udfra CPR-numre ? dette er hvad jeg har (men aner ikke om det skal/kan bruges til noget i denne sammenhæng): foedselsdag = Left(cpr, 6) tempkunmon = Left(cpr, 4) kunmon = right(tempkunmon, 2) kundag = Left(cpr, 2) monnavn = Monthname(kunmon) kunaar = right(foedselsdag, 2)
Øh hvad var der galt med mit svar. Hvis du løber alle dine CPRnr igennem og laver den sammenligning, som jeg har skrevet ovenfor, skulle du gerne have en liste over alle person, som har fødselsdag i denne måned.
Det jeg vil have er en rutine, der genererer en side med hhv: Navn, Dato og Alder i DENNE måned(i listeform..) og da meget gerne i den logiske form med hvor gammel man så bliver, som Alder (tak for hintet!)
helst i tabelform..
for i = ?? to response.write noget until EOF.. eller hvad det hedder.. liste-generering
' Hent record set Do While Not recordSetData.BOF And Not recordSetData.EOF mon = Mid(recordSetData("fodselsdag"), 3, 2) If mon = DatePart("m", Now()) Then Response.Write(recordSetData("fodselsdag") & " " & recordSetData("navn") & "<br>")
End If
Loop
Det der giver dig en liste over folk, som har fødselsdag i denne månede.
Har du nogle records hvor CPR ikke er udfyldt det kunne nemlig se sådan ud???
Så prøv dette som tjekke på som CPR er tom:
Response.write "<table>" Response.write "<tr><td>Navn</td><td>Dato</td><td>Alder</td></tr>" do while not rs.EOF cpr = "" & rs("cpr") if cpr = "" then dato = Left(cpr,2) & "-" & Mid(cpr,3,2) & "-19" & Mid(cpr,5,2) if Month(Date) = Month(dato) then Response.Write "<tr><td>" & rs("navn") & "</td>" Response.Write "<tr><td>" & dato & "</td>" Response.Write "<tr><td>" & Year(Date)-Year(dato) & "</td>" Response.Write "</tr>" end if end if rs.Movenext loop Response.write "</table>"
nu har jeg prøvet frem og tilbage, og lavet om på en del, men intet virker.. Får bare internal servererror hhtp500 (siden kan ikke vises). Formatet på CPR er 2407630000, altså tal, uden mellemrum
se lige om jeg er helt ude i tågen her: <html> <head>
</head> <body> <% Response.Buffer = true
Dim objConn Dim objRec Dim hit
Set objConn = Server.CreateObject ("ADODB.Connection") Set objRec = Server.CreateObject ("ADODB.Recordset")
Do While Not objRec.EOF hit = "" & objRec("CPR") if hit = "" then dato = Left(CPR,2) & "-" & Mid(CPR,3,2) & "-19" & Mid(CPR,5,2) if Month(Date) = Month(dato) then Response.Write "<tr><td>" & objRec("name") & "</td>" Response.Write "<tr><td>" & dato & "</td>" Response.Write "<tr><td>" & Year(Date)-Year(dato) & "</td>" Response.Write "</tr>" end if end if objRec.MoveNext Loop Response.write "</table>"
objRec.Close objConn.Close Set objRec = Nothing Set objConn = Nothing Set hit = Nothing %> </body> </html>
Både Ja og Nej. Der må max gives 200 point for et spørgsmål. Så du har afsat max point og kan derfor ikke sætte det op. Normat kan det gøres ved at tykke på selv point tallet i øveste linje efter flaget, eller i menuen funktion "Afsæt flere point" mener jeg den hedder.
her ligge cpr nummeret over i hit = "" & objRec("CPR") og her forvendter man det er i variablen CPR. Samt denne if sætning hit = "" skal være hit <> "" Der var et par <tr><td> som skulle være <td>
så prøv denne kode:
<html> <head>
</head> <body> <% Response.Buffer = true
Dim objConn Dim objRec Dim hit
Set objConn = Server.CreateObject ("ADODB.Connection") Set objRec = Server.CreateObject ("ADODB.Recordset")
Response.Write "<table>" Do While Not objRec.EOF hit = "" & objRec("CPR") if hit <> "" then dato = Left(hit,2) & "-" & Mid(hit,3,2) & "-19" & Mid(hit,5,2) if Month(Date) = Month(dato) then Response.Write "<tr><td>" & objRec("name") & "</td>" Response.Write "<td>" & dato & "</td>" Response.Write "<td>" & Year(Date)-Year(dato) & "</td>" Response.Write "</tr>" end if end if objRec.MoveNext Loop Response.write "</table>"
objRec.Close objConn.Close Set objRec = Nothing Set objConn = Nothing Set hit = Nothing %> </body> </html>
!!.. der er fejl !! Koden checker om der er sammenfaldende tal i datoen, således bliver alle datoer med sammenfald på nuværende måneds tal listet; f.eks. nu er det 12 måned, så alle i måned 12, december, kommer med..godt nok, men!.. alle der har fødselsdag d.12.xx kommer også med ! HVORFOR ??
Response.Write "<table>" Do While Not objRec.EOF hit = "" & objRec("CPR") if hit <> "" then dato = Left(hit,2) & "-" & Mid(hit,3,2) & "-19" & Mid(hit,5,2) mon = Mid(hit,3,2) If mon = Right(CStr(100+Month(Date)), 2)then Response.Write "<tr><td>" & objRec("name") & "</td>" Response.Write "<td>" & dato & "</td>" Response.Write "<td>" & Year(Date)-Year(dato) & "</td>" Response.Write "</tr>" end if end if objRec.MoveNext Loop Response.write "</table>"
objRec.Close objConn.Close Set objRec = Nothing Set objConn = Nothing Set hit = Nothing %> </body> </html>
Hvor rettelsen er denne: mon = Mid(hit,3,2) If mon = Right(CStr(100+Month(Date)), 2) then
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.