Använder mig av följande för att visa de 2 senaste dagarnas alla poster: Det är väl bara att kolla om ditt recordset är EOF, dvs tomt, är det det så skriva ut att inga inlägg finns, annars skriv ut de inlägg som finns. Nej men alltså inlägg finns. Men även om det inte finns några nya idag, vill jag visa då tillexempel gårdagens och de från i förgår och så vidare. Hänger ni med? Har formulerat om lite... Förresten, ska verkligen visa vara true. Jag har ändrat det till visa=1 i mitt förslag nedan. Jag jämför datumet med det senaste (högsta) datumet i tabellen. Hoppsan, det blev trassel när jag skulle posta inlägget. Det är därför samma svar kom flera gånger. Men det vill sig inte riktigt. Fick följande fel: Vill sig inte riktigt ändå. Det är möjligt att inte Access klarar av syntaxen. Jag är van vid sql server. Någon annan kanske vet detta. Startade en tråd på asp-sidan också, och fick där några svar som kanske någon kan hjälpa mig att utveckla, då jag inte fick dem heller att fungera: http://www.aspsidan.nu/showPost.asp?pId=247687 Fick tips om följande kod, någon kanske vet vad det är för fel: Denna sats plockar ut poster från de två senast lagrade datum. Nu visar det bara inläggen från den allra första dagen i datumet. Skumt det här... Ops... Srorry... Hmm... det är fortfarande lite skumt. Nu visar de´n det senaste, men: Först hade jag 1 post idag och 3 igår som visades, precis som det skall. Men när jag la till så att det fanns 3 från idag, försvann dom från igår, dvs bara dagens 3 som visades?? TOP 2 returnerar de översta raderna utan att bry sig om ifall datumen är olika. SQL-satsen i tidigare inlägg kunde alltså returnera samma datum två gånger. Hittade förresten ett problem: Vill ju bara att de inlägg med dagens datum och äldre ska kunna visas. Hur gör jag det?? (har ordnat så att jag som admin kan gå in o välja vilket datum posterna skall visas, smart så man´slipper gå in varje dag och uppdatera) Jag förstår inte frågan. Man kan väl inte skapa inlägg i framtiden? Därför är väl en sådan funktion onödig? Jo men allstå jag som admin kan (i detta fallet handlar det om länkar) logga in mig och välja vilket datum en länk skall börja visas. På detta sätt slipper jag ju uppdatera sidan varje dag. Men så vill jag ju självklart då att länkar med nyare datum än dagens inte skall visa. Hänger du med? sql-satsen jag hade förrut såg ut så här: Bar att lägga till vilkoret i den innre SQL satsen: Hehe.. =) Jo, jag löste det själv faktiskt. Men tack för all hjälp i alla fall!Visa senaste dagarna
SQL = "SELECT * FROM linkz where visa=True and (not (kategori=33)) and (not (kategori=34)) and datum >=#" & DateAdd("d",-2,Date()) & "# Order By datum desc, id desc"
Problem dyker dock upp om det inte finns några nya poster i dag, eller kanske inga nya igår osv. Hoppas ni förstår. Jag vill alltså visa de senaste inläggen från de 2 senaste dagarna i databasen.
Hoppas ni förstår och har tid/lust/ork att hjälpa mig!Sv: Visa senaste dagarna
//Anna-KarinSv: Visa senaste dagarna
Sv: Visa senaste dagarna
<CODE SQL>
SELECT a.*
FROM linkz a,
(select max(datum) maxdate from linkz) b
where a.visa=1
and a.kategori <> 33
and a.kategori <> 34
and a.datum >= DateAdd(day, -2, b.maxdate)
Order By datum desc, id desc
</CODE>
Lycka till!
/PKSv: Visa senaste dagarna
Sv: Visa senaste dagarna
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'max(datum) maxdate'. Sv: Visa senaste dagarna
(select max(datum) maxdate from linkz) b ska vara
(select max(datum) AS maxdate from linkz) b
//Anna-KarinSv: Visa senaste dagarna
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.Sv: Visa senaste dagarna
Och cougarina: AS behövs inte, man kan hoppa över det.Sv: Visa senaste dagarna
Sv: Visa senaste dagarna
<table border=0 width=100% align=center><tr><td>
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("../databas.mdb")
Sub GetData(ByRef _RecSet, ByRef _Conn, MyDate)
Dim SQL
SQL = "SELECT * FROM linkz where visa=True and datum >=#" & MyDate() & "# Order By datum desc, id desc"
Set _RecSet = _Conn.Execute
If _RecSet.EOF Then
GetData(_RecSet,_Conn,DateAdd("d",-2,MyDate))
End If
End Sub
RecSet.Open SQL, Conn%>
<% do until RecSet.eof %>
<%
Set RecSet2 = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM kat WHERE id = "& Recset("kategori") &" "
RecSet2.Open SQL, Conn%>
<%strLink=RecSet("link")%>
<%If strLink<>"" Then%>
<table width="100%" border="0" align="center">
<td width="100%">
<a class="date"><%if dtmDate <> recset("datum") then Response.write(recset("datum"))
dtmDate = recset("datum")%>
</a><br><table border="0" class="links" width="100%"><tr><td>
<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr><td align="left">
<b>" title=<%=strLink%> target="_blank"" class="link"><%=RecSet("namn")%><%End If%></b>
</td><td align="right">
<%If Recset("fel") = true Then%>
<img src="bilder/fel.gif" alt="Redan rapporterad felaktig. Ej kontrollerad ännu">
<%else%>
">
<%End If%></td></table>
<%=RecSet("beskriv")%><br>
<a class="small">Kategori:</a> <a class="small" href="linkz.asp?do=kate&kat=<%=RecSet2("id")%>"><font size=1><%=RecSet2("namn")%></font></a> <nobr><a class="small">Besök: <%=RecSet("hitz")%></a></nobr>
<a class="small" href="linkz.asp?do=ut&id=<%=RecSet("id")%>" title=<%=strLink%> target="_blank">
<% If Len(strLink) > 50 then %>
<%=Left(strLink,50)%>...
<%Else%>
<%=strLink%>
<%End If%>
</a>
<%If Recset("tipsare") <> "" Then%>
<nobr><a class="small">Tipsare: <%=Replace(RecSet("tipsare"), vbCrLf, "<br>")%></a></nobr></A>
<%End If%>
</td></tr></table></table>
<%set recset2=nothing
RecSet.MoveNext
Loop
Set recset=nothing
set conn=nothing%>
Och felmeddelandet lyder:
Microsoft VBScript compilation error '800a0408'
Invalid character
/nya/index.asp, line 167
Sub GetData(ByRef _RecSet, ByRef _Conn, MyDate)
-------------------^Sv: Visa senaste dagarna
<code>
strSQL = "SELECT linkz.*" & vbCrLf & _
"FROM linkz" & vbCrLf & _
"WHERE linkz.Visa AND NOT linkz.kategori IN (33, 34) AND linkz.datum IN (SELECT TOP 2 linkz.datum" & vbCrLf & _
" FROM linkz" & vbCrLf & _
" ORDER BY linkz.datum)" & vbCrLf & _
"ORDER BY linkz.datum DESC, linkz.id DESC"
</code>Sv: Visa senaste dagarna
Sv: Visa senaste dagarna
Glömde en DESC i den "innre" SQL satsen:
<code>
strSQL = "SELECT linkz.*" & vbCrLf & _
"FROM linkz" & vbCrLf & _
"WHERE linkz.Visa AND NOT linkz.kategori IN (33, 34) AND linkz.datum IN (SELECT TOP 2 linkz.datum" & vbCrLf & _
" FROM linkz" & vbCrLf & _
" ORDER BY linkz.datum DESC)" & vbCrLf & _
"ORDER BY linkz.datum DESC, linkz.id DESC"
</code>Sv: Visa senaste dagarna
Sv: Visa senaste dagarna
Testa det här. Lade till GROUP BY i sql-satsen.
<CODE>
strSQL = "SELECT linkz.*" & vbCrLf & _
"FROM linkz" & vbCrLf & _
"WHERE linkz.Visa AND NOT linkz.kategori IN (33, 34) AND linkz.datum IN (SELECT TOP 2 linkz.datum" & vbCrLf & _
" FROM linkz" & vbCrLf & _
" GROUP BY linkz.datum ORDER BY linkz.datum DESC)" & vbCrLf & _
"ORDER BY linkz.datum DESC, linkz.id DESC"
</CODE>
/PKSv: Visa senaste dagarna
Sv: Visa senaste dagarna
Sv: Visa senaste dagarna
SQL = "SELECT top 10 * FROM linkz where visa=True and (not (kategori=33)) and (not (kategori=34)) and datum<=Date() Order By datum desc, id desc"Sv: Visa senaste dagarna
<code>
strSQL = "SELECT linkz.*" & vbCrLf & _
"FROM linkz" & vbCrLf & _
"WHERE linkz.Visa AND NOT linkz.kategori IN (33, 34) AND linkz.datum IN (SELECT TOP 2 linkz.datum" & vbCrLf & _
" FROM linkz" & vbCrLf & _
" WHERE linkz.datum <= Date()" & vbCrLf & _
" GROUP BY linkz.datum ORDER BY linkz.datum DESC)" & vbCrLf & _
"ORDER BY linkz.datum DESC, linkz.id DESC"
</code>Sv: Visa senaste dagarna