Avatar billede akr21jb Nybegynder
28. januar 2001 - 23:00 Der er 13 kommentarer og
1 løsning

måned år problem

Hejsa
Følgende kode trækker arrangementer ud af en database.
På siden er det altid arrangementerne for den pågældende måned vi er i, der bliver vist.
Dette virker som det skal.
Problemet er nu, at jeg på siden har en knap, hvorpå man kan vælge at se arrangementerne for de næste månededer.
Det virker tildels, men arrangerne fra samme måned årene før bliver også vist.
Nogle der har et bud på hvordan jeg får det løst.
ekseplet kan ses her:
http://www.frederikshavn-online.dk/nf.asp



<%
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"blablabla.mdb\")

If Request.QueryString(\"ID\") <> \"\" Then
    Maaned = Request.QueryString(\"ID\")
Else
    Maaned = month(now)
End If

If Maaned > 12 Then
    Maaned = Maaned-12
End If

dDate = Date
MaanedNavn = MonthName(Maaned)
Response.write \"<!-- \" & Request.QueryString(\"ID\") & \" / \" & Maaned & \" / \" & MaanedNavn & \" -->\"


strSQL = \"SELECT * FROM tEvents where Start_Date >= Date() ORDER BY Start_Date\"
strSQL = \"SELECT * FROM tEvents WHERE (Organisation LIKE \'%Nielstrup%\') ORDER BY Start_Date\"

Set rs = myConn.Execute(strSQL)

Sub DenneMaaned()
    If Not (rs.BOF Or rs.EOF) Then
        Do While Not rs.EOF
                If ( cint(month(rs(\"Start_Date\"))) = cint(Maaned )) Then
                    Response.write \"<b><font size=1  face=Verdana>\" & rs(\"Start_Date\") & \"<br>\" & rs(\"Event_Title\") & \"</b><br>\" & rs(\"Event_Details\") & \"</font><br><br>\"
                End if
        rs.MoveNext
        Loop
    Else
        Response.write \"<br><font size=1 face=Verdana>Der er ingen registreringer for \" & MaanedNavn & \" </font>\"
    End If
End Sub
%>


<table width=\"452\">


  <tr>
    <td width=\"446\" rowspan=\"3\"></td>
    <td width=\"756\"><strong><font face=\"Verdana\" size=\"2\">Arrangementer i <%= MaanedNavn %></font></strong></td>
    <td width=\"269\"><strong><font face=\"Verdana\" size=\"1\"><a
    href=\"../nf.asp?id=<% =Maaned+1 %>\">Næste måned</a></font></strong></td>
  </tr>
  <tr>
    <td width=\"1004\" colspan=\"2\"><br>
<% DenneMaaned() %>    </td>
  </tr>
  <tr>
    <td width=\"992\" colspan=\"2\"><% If Maaned <> Month(now) Then Response.write \"<font size=1 face=Verdana><a href=java script:history.back(1)>Tilbage</a></font>\"  End If %>
</td>
  </tr>
<%
myConn.Close
Set myConn = Nothing
%>

</table>
Avatar billede torbenrohde Nybegynder
28. januar 2001 - 23:19 #1
Nøjes med at hive de arrangementer du skal bruge.
Hvis du bruger MS Access som DB skal du huske at bruge # rundt om datoer, og at Access vil have datoer i engelsk format.
Avatar billede eagleeye Praktikant
28. januar 2001 - 23:50 #2
Der går da også noget galt med to linier SQL du overskriver førte linie:
strSQL = \"SELECT * FROM tEvents where Start_Date >= Date() ORDER BY Start_Date\"
strSQL = \"SELECT * FROM tEvents WHERE (Organisation LIKE \'%Nielstrup%\') ORDER BY Start_Date

Som det er i dag hendter du kun de record med Organisation LIKE Nielstrup.

Du skal skrive:
strSQL = \"SELECT * FROM tEvents WHERE Start_Date >= Date() AND Organisation LIKE \'%Nielstrup%\' ORDER BY Start_Date\"

Så får du kun de record som har Dato >= idag
og Organisation LIKE Nielstrup.
Avatar billede eagleeye Praktikant
28. januar 2001 - 23:53 #3
Men den gamle metode får du ikke sorteret de \"gamle\" arrangementer fra. Derfor får du listet alt fra tidligere år.
Avatar billede akr21jb Nybegynder
29. januar 2001 - 18:43 #4
eagleeye: det hjalp en del på det.
Nu har den ganske vist sorteret de gamle datoer fra. Men den viser nu ikke nogen poster for januar, altså den måned som vi er i nu.
Hvis man vælger næste måned, osv, virker det dog perfekt.
hvad mangler der for at få vist den pågældende måned som vi er i ?
Prøv at se her:
http://www.frederikshavn-online.dk/nf.asp
Avatar billede eagleeye Praktikant
30. januar 2001 - 16:32 #5
Du må unskylde jeg ikke har fået
kikket på det før nu men jeg får altså ingen mails fra eksperten....

Du vil gerne havde vist alle arrangementerne for denne-månede selv om de er
\"for\" gamle.

Prøv dette:

firstinmounth = DateAdd(\"d\",-day(Date())+1, Date())
strSQL = \"SELECT * FROM ..... >= firstinmounth AND ...

I SQL sætningen så ændre Date() til firstinmounth.

Forklaring:
For at få alle arrangementer ud af databasen sættet datoen til den første i
måneden. Det gøres ved at tage DagenDato og træke Antal datefra. 10/1-2001 -
10dage = 0/1-2001 så skal der jo lige ligges 1 dag til for at få en gyldig
dato 0/1-2001 + 1dag = 1/1-2001.

Du skuller gerne få alle arrangementer ud for denne månede pga >= i SQL
sætningen.
Avatar billede akr21jb Nybegynder
30. januar 2001 - 17:54 #6
Da du hjælper gratis, har du bestemt ingen grund til at undskylde :o)
Nej, jeg har nok forklaret mig forkert.
Nuværende problem er at der ikke bliver vist nogle poster overhovedet for denne måned. Posterne bliver først vist i næste måned og derefter.
Altså din første sql sætning virkede altså nogenlunde, jeg kan bare ikke få vist denne måned. Og nej ingen gamle (fra sidste år) indlæg skal vises.
Håber du får et extra minut til at hjælpe mig, da jeg er på herrens mark med dette.
Aders
Avatar billede eagleeye Praktikant
30. januar 2001 - 18:00 #7
OK, jeg tror nu også vi mener det samme. Det jeg mener med gamle, er at du vil gerne havde vist poster fra eks. 5 januar i 2001 på siden januar (denne-månede).
Har du prøvet det som jeg skrev...

firstinmounth bliver sat til den 1/(denne-månede)

firstinmounth = DateAdd(\"d\",-day(Date())+1, Date())
strSQL = \"SELECT * FROM tEvents WHERE Start_Date >= firstinmounth AND Organisation LIKE \'%Nielstrup%\' ORDER BY Start_Date\"
Avatar billede akr21jb Nybegynder
30. januar 2001 - 18:10 #8
Godt :o)
Jeg går straks igang.
Desværre kan jeg får jeg først svarret dig imorgen.
Avatar billede eagleeye Praktikant
30. januar 2001 - 22:17 #9
Upss prøv lige den her, det gik vist for hurtigt:

firstinmounth = DateAdd(\"d\",-day(Date())+1, Date())
strSQL = \"SELECT * FROM tEvents WHERE Start_Date >=#\"& firstinmounth &\"# AND Organisation LIKE \'%Nielstrup%\' ORDER BY Start_Date\"
Avatar billede akr21jb Nybegynder
30. januar 2001 - 22:57 #10
Det ser nu således ud, og virker stadig kun på \"næste måned\". dvs ingen poster i januar ???


If Request.QueryString(\"ID\") <> \"\" Then
    Maaned = Request.QueryString(\"ID\")
Else
    Maaned = month(now)
End If

If Maaned > 12 Then
    Maaned = Maaned-12
End If

dDate = Date
MaanedNavn = MonthName(Maaned)
Response.write \"<!-- \" & Request.QueryString(\"ID\") & \" / \" & Maaned & \" / \" & MaanedNavn & \" -->\"


\'strSQL = \"SELECT * FROM tEvents where Start_Date >= Date() ORDER BY Start_Date\"
\'strSQL = \"SELECT * FROM tEvents WHERE (Organisation LIKE \'%Nielstrup%\') ORDER BY Start_Date\"
\'strSQL = \"SELECT * FROM tEvents WHERE Start_Date >= Date() AND Organisation LIKE \'%Nielstrup%\' ORDER BY Start_Date\"

firstinmounth = DateAdd(\"d\",-day(Date())+1, Date())
strSQL = \"SELECT * FROM tEvents WHERE Start_Date >=#\"& firstinmounth &\"# AND Organisation LIKE \'%Nielstrup%\' ORDER BY Start_Date\"

Set rs = myConn.Execute(strSQL)

Sub DenneMaaned()
    If Not (rs.BOF Or rs.EOF) Then
        Do While Not rs.EOF
                If ( cint(month(rs(\"Start_Date\"))) = cint(Maaned )) Then
                    Response.write \"<b><font size=1  face=Verdana>\" & rs(\"Start_Date\") & \"<br>\" & rs(\"Event_Title\") & \"</b><br>\" & rs(\"Event_Details\") & \"</font><br><br>\"
                End if
        rs.MoveNext
        Loop
    Else
        Response.write \"<br><font size=1 face=Verdana>Der er ingen registreringer for \" & MaanedNavn & \" </font>\"
    End If
End Sub
%>


<table width=\"452\">


  <tr>
    <td width=\"446\" rowspan=\"3\"></td>
    <td width=\"756\"><strong><font face=\"Verdana\" size=\"2\">Arrangementer i <%= MaanedNavn %></font></strong></td>
    <td width=\"269\"><strong><font face=\"Verdana\" size=\"1\"><a
    href=\"../nf.asp?id=<% =Maaned+1 %>\">Næste måned</a></font></strong></td>
  </tr>
  <tr>
    <td width=\"1004\" colspan=\"2\"><br>
<% DenneMaaned() %>    </td>
  </tr>
  <tr>
    <td width=\"992\" colspan=\"2\"><% If Maaned <> Month(now) Then Response.write \"<font size=1 face=Verdana><a href=java script:history.back(1)>Tilbage</a></font>\"  End If %>
</td>
  </tr>
<%
myConn.Close
Set myConn = Nothing
%>

</table>
Avatar billede eagleeye Praktikant
30. januar 2001 - 22:59 #11
hmmm, prøv med:

strSQL = \"SELECT * FROM tEvents WHERE Start_Date >=\"& firstinmounth &\" AND Organisation LIKE \'%Nielstrup%\' ORDER BY Start_Date\"
Avatar billede akr21jb Nybegynder
30. januar 2001 - 23:17 #12
Jeg ved snart ikke hvordan jeg skal få det sagt.
Men nu er de gamle indlæg med igen :o)

giv ikke op, du er ved at være der  :o)
Avatar billede akr21jb Nybegynder
30. januar 2001 - 23:19 #13
Hmm, jeg prøvede for sjov at gå tilbage til den forige sql....og nu virker det. Måske var jeg lidt for hurtig før ???. Det ligner ellers ikke mig :o)
Tusind tak for hjælpen eagleeye.

Anders
Avatar billede eagleeye Praktikant
30. januar 2001 - 23:22 #14
Jeg har lige være inde og kikke på din side. Den viser alle poster fra januar 2001, der var det der var meningen ?

Det var så lidt :-)

Anders
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