Avatar billede malte Nybegynder
04. august 2002 - 17:57 Der er 9 kommentarer og
1 løsning

Udtræk en uge frem??

Hvordan kan jeg få den her til ikke kun trække dagan idag ud, men hele den kommende uge ? Jeg sender mails ud hver gang der er en der har mærkedag og det bliver for meget hvis jeg gør det hver dag. Derfor vil jeg sende en gang pr uge med alle de navne der er i den kommende uge.

                <%
    OneMerkeDag = false
    do while not rs.EOF
        sBirthdate = rs("Birthdate")
        dato = sBirthdate
        years = Datediff ("yyyy",dato,date)
        dato = dateAdd("yyyy",years,dato)
        mounths = Datediff ("m",dato,date)
        if mounths < 0 then
            dato = dateAdd("yyyy",-1,dato)
            mounths = Datediff ("m",dato,date)
            years = years - 1
        end if
        dato = dateAdd("m",mounths,dato)
        days = Datediff ("d",dato,date)
        if days < 0 then
            if mounths > 0 then
                mounths = mounths - 1
            else
                years = years - 1
                mounths = 11
            end if
            dato = dateAdd("m",-1,dato)
            days = Datediff ("d",dato,date)
        end if
       
        'TJEK OG FIND MÆRKE DAG/DAGE !!!!
        merkeDag = false
        if (mounths = 0) and (days = 0) then
          merkeDag = true
        end if
       
        if len(sBirthdate) > 0 then
        TotalCleanYear = TotalCleanYear + years
        TotalCleanMounths = TotalCleanMounths + mounths
        TotalCleanDays = TotalCleanDays + days
        if TotalCleanDays >= 30 then
          TotalCleanDays = TotalCleanDays - 30
          TotalCleanMounths = TotalCleanMounths + 1
        end if
        if TotalCleanMounths >= 12 then
          TotalCleanMounths = TotalCleanMounths - 12
          TotalCleanYear = TotalCleanYear +1
        end if
        end if
       
        if merkeDag = true then
          OneMerkeDag = true
          dinStr = years & " år "
          Response.Write "<b><a href=""/dev/myDeV/users.asp?username=" & rs("UserName") & """>"
          Response.Write rs("UserName") & " </b><a></a>har idag "  & dinStr & " Clean!<br>"
        end if
   
    rs.movenext
    loop
    if OneMerkeDag = false then
      Response.Write "<i>Der er ingen der der kan fejre hele år idag.</i><br>"
    end if
   
    dinStr = "" & TotalCleanYear & " år " & TotalCleanMounths & " måneder " & TotalCleanDays & " dage"
    Response.Write "Samlet cleantime i mærkedagskalenderen:&nbsp;" & dinStr & ""
    %>
Avatar billede loukas Mester
04. august 2002 - 20:57 #1
Hej jeg kan desværre ikke hjælpe, men er meget nysgerrig efter hvad det er for en side du har lavet ?????
Avatar billede malte Nybegynder
04. august 2002 - 20:59 #2
Avatar billede soes Nybegynder
04. august 2002 - 21:03 #3
hvordan ser din sql ud?
Avatar billede malte Nybegynder
04. august 2002 - 21:10 #4
sConnForum = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & Server.MapPath("/databasen/data/xxxxx.mdb")

Er det den her du mener?
Avatar billede soes Nybegynder
04. august 2002 - 21:16 #5
nope det sted du udvælger din data, i dit tilfælle vil det sikkert se sådan her ud Sql = "SELECT ......."
Avatar billede malte Nybegynder
04. august 2002 - 22:47 #6
<%
    OpenDB sConnUsers
    sSQL = "SELECT * FROM users where Public = Yes order by BirthDate DESC"
    rs.Open sSQL,,,adCmdTable
   
    TotalCleanYear = 0
    TotalCleanMounths = 0
    TotalCleanDays = 0
   
    %>
Avatar billede coltau Juniormester
05. august 2002 - 01:26 #7
Denne kode kan finde og udskrive dem der har fødselsdag inden for den kommende uge.

<%
  OpenDB sConnUsers
  set RS = Server.CreateObject("ADODB.Recordset")

  OneMerkeDag = false
  for I = 0 to 6
    TheDate = Date + I
    TheDay = DatePart("d", TheDate)
    TheMonth = DatePart("m", TheDate)
    sSQL = "SELECT * FROM users WHERE Public=Yes and day(BirthDate)=" & TheDay & " and month(BirthDate)=" & TheMonth
    rs.Open sSQL,OpenDB,,&H0002 ' adCmdTable

    do while not rs.EOF
      OneMerkeDag = true
      sBirthdate = rs("Birthdate")
      years = Datediff ("yyyy",sBirthdate,TheDate)
      dinStr = years & " års fødslesdag."
      Response.Write "<b><a href=""/dev/myDeV/users.asp?username=" & rs("UserName") & """>"
      Response.Write rs("UserName") & " </b><a></a>har i den kommende uge "  & dinStr & "<br>"

      rs.movenext
    loop
    rs.Close
  next
  if OneMerkeDag = false then
    Response.Write "<i>Der er ingen der har fødselsdag i den kommende uge.</i><br>"
  end if
%>

Koden fylder knap så meget som din - men den sammentæller heller ikke de uforståelige tal. ?

(Er testet på en Access)
Avatar billede coltau Juniormester
05. august 2002 - 01:28 #8
Denne linie skal rettes med korrekt connection.

rs.Open sSQL,OpenDB,,&H0002 ' adCmdTable

Til:
rs.Open sSQL,<Connectionname>,,&H0002 ' adCmdTable
Avatar billede malte Nybegynder
05. august 2002 - 06:43 #9
De uforståelige tal skulle undgå skudår og sådan noget
Avatar billede coltau Juniormester
05. august 2002 - 10:30 #10
Ok - det er da heldigvis ikke nødvendigt at kontrollere for skudår mv. i mit eksempel da SQL-udtrækket finder dem frem på baggrund af dag og måned.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester