Hej! Hej, Hej, Jo de är precis vad jag var ute efter. Varför inte baka in format-anropet redan i SQL-frågan, enligt det format du fick av Mikael. Mao <code> Mycket slarvigt kodat Andreas, fy på dej... Koden var ju inte till dig. :-P en får tacke... Vadå snyggare? KAn du inte publicer koden så vi får se?Hämta ur databas efter datum + veckodag
sitter med en fundering som jag inte kommer på någon lösning på...
kan man skriva ut vilken dag det är om man har datumet i databasen? (tex. 2003-11-23) och kan man iså fall skriva ut att varje gång den hämtar ett nytt datum ur koden nedanför så skriver man ut vilken dag det är.´
Ska nämligen hämta de 7 kommande dagarnas aktiviteter och för varje ny dag så ska den dagens namn stå.
Koden:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("db/kalender.mdb")
Set RecSet = Connect.Execute("SELECT * FROM Mess WHERE Datum>=#" & Date() & "# and Datum<=#" & DateAdd("d",7,Date()) &"# ORDER BY Datum DESC")%>
<%If RecSet.EOF Then%>
Det finns inga nyheddddter i databasen
<%Else%>
<%Do until RecSet.EOF%>
<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="42%" bgcolor="#E9E9E9"><%=RecSet("Rubrik")%>
</td>
</tr>
<tr>
<tr>
<td><%=RecSet("Mess")%><br>
<br>
"><%=RecSet("Rubrik")%></td>
</tr>
</table>
<%RecSet.MoveNext
Loop
End If%>
Hoppas ni förstår vad jag menar och koden kanske inte är den optimala
Mvh AndreasSv: Hämta ur databas efter datum + veckodag
Det finns en ganska lätt modell för detta och jag brukar använda den ganska ofta själv. Eftersom du vill "bryta" vid ett givet tillfälle - i detta fall ett datum så börjar du med att se till att posterna är sorterade så alla med samma dag ligger efter varandra. Det hade lika gärna kunna varit fordon eller kanske frukter.
För varje post som du loopar så sparar du undan vad den gamla posten hade för värde och så länge värdet inte är skilt - då är det samma kategori. Men om värdet är annorlunda så betyder det att du har en ny grupp. Här följer ett kodexempel:
<code>
Do While Not Rst.Eof
If oldDatum <> Rst("Datum") Then
Response.Write Rst("Datum") & "<br>"
End If
Response.Write "... " & rst("info")
OldDatum = Rst("Datum")
Rst.MoveNext
Loop
</code>
Ovan ser du nu att du går in i loopen, kontrollerar om variabeln (som i detta fall är tom) inte är samma som den aktuella postens datum. I detta fallet skriver den ut datumet, och därefter skriver info. Sen fylls oldDatum med den aktuella postens datum för att veta vad vi precis skrev ut. Då slingan återupprepar sig kommer inte if-satsen att uppfyllas om det finns en post till med samma datum och så kommer det vara ända tills datumet skiljer sig. Jag hoppas detta ger dig en vägledning med din nya applikation.Sv: Hämta ur databas efter datum + veckodag
Undrar om det inte är namnet på veckodagen som du är ute efter, t.ex. Fredag ?
Prova enligt nedan.
(Sorry, jag är inte hemma på vbscript, så jag vet inte om alla funktioner finns där.
Detta är ursprungligen VBA kod).
<code>
Dim strVeckodag ' As String
strVeckodag = Format(dtmDate, "dddd", 2, 2) ' vbMonday, vbFirstFourDays
</code>
Någon kanske kan korrigera till vbscript i så fall.
Micke - MicrosoftSv: Hämta ur databas efter datum + veckodag
Ville alltså att när den hämtar de 7 följande dagarnas poster så ska det skrivas ut vilken dag det är när den första posten för varje datum hämtas hem
tex.
Måndag:
aktivitet 1 (2003-11-12)
aktivitet 2 (2003-11-12)
aktivitet 3 (2003-11-12)
aktivitet 4 (2003-11-12)
tisdag
aktivitet 1 (2003-11-13)
aktivitet 2 (2003-11-13)
aktivitet 3 (2003-11-13)
Ska hem och testa lite mera senare idagSv: Hämta ur databas efter datum + veckodag
select mess.*, Format(MyDateField;"dddd") as WeekDay .............Sv: Hämta ur databas efter datum + veckodag
<%
Dim LastDate
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("db/kalender.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT *" & vbCrLf & _
"FROM Mess" & vbCrLf & _
"WHERE Datum BETWEEN #" & Date() & "# AND #" & DateAdd("d",7,Date()) &"#" & vbCrLf & _
"ORDER BY Datum DESC", Connect
If RecSet.EOF Then
%>
Det finns inga nyheter i databasen!
<%
Else
Do until RecSet.EOF
If LastDate = RecSet("datum") Then
Else
Response.Write "<h3>" & strConv(WeekdayName(Weekday(RecSet("datum"))),vbProperCase) & "</h3>" & vbCrLf
LastDate = RecSet("datum")
End If
%>
<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="42%" bgcolor="#E9E9E9"><%=RecSet("Rubrik")%>
</td>
</tr>
<tr>
<td><%=RecSet("Mess")%><br>
<br>
"><%=RecSet("Rubrik")%></td>
</tr>
</table>
<%
RecSet.MoveNext
Loop
End If
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
</code>Sv: Hämta ur databas efter datum + veckodag
Det är inte nåt kul att få en kod som ser ut så...Sv: Hämta ur databas efter datum + veckodag
Hade missat avslutande Code-tag. Vilket Fuckade upp allt.Sv: Hämta ur databas efter datum + veckodag
fast det ordnade sig ändå + att jag kodade omdet hela fast snyggare :-)
tack ändå!Sv: Hämta ur databas efter datum + veckodag