---
title: "Sortera efter månad"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/117619-sortera-efter-månad"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "hallmert"
published: "2004-12-08T16:10:27.000Z"
updated: "2004-12-10T17:42:50.000Z"
replies: 31
views: 701
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/117619-sortera-efter-månad"
---

# Sortera efter månad

_Sida 1 av 2._

## #1 — hallmert, 2004-12-08T16:10Z

Hallå där!

Sitter och håller på med en personlig webblogg. Nu hade jag tänk att på sidan ha en liten hörna med ett "arkiv". Där hade jag tänkt mig en uppstapling, typ:
\-------------------------------------
Inlägg denna månaden:
6 december - Hej hopp
4 december - Blää
1 december - Greger är söt

Tidigare månader:
November 2004
Oktober 2004
September 2004
\-------------------------------------

Hur gör jag för att skriva ut alla inläggen den månaden som det är nu? Dvs. alla inläggen skrivna i december.

Och fråga två, hur gör jag för att göra länkar till arkiv där de tre senaste månadernas inlägg finns. I November-sidan ska alla inlägg från november ligga etc. Ni förstår nog hur jag menar.

Vore jättetacksam för svar. 

Datumen som skrivs in i databasen blir så som det blir med MS Access, har ett fält som heter "datum", och den använder "Datum/Tid" som typ i inställningarna i Access. 

Tack på förhand!

Permalänk: https://www.webforum.nu/p/117619

## #2 — LarsG, 2004-12-08T16:29Z

Alla inlägg från nuvarande månad

```
select * 
from inlägg
where month(Datum) = month(date())
and year(Datum) = year(date())
```

Tre senaste månaderna 

```
select  top 3 month(datum) m,year(datum) y
from inlägg
where (year(datum) = year(date()) 
and month(datum) < month(date()))
or year(datum) < year(date())
group by month(datum),year(datum)
order by year(datum)desc,month(datum) desc
```

Permalänk: https://www.webforum.nu/p/1501429

## #3 — hallmert, 2004-12-10T15:45Z

> **LarsG skrev:**
>
> Tre senaste månaderna 
> 
>
>
> ```
> select  top 3 month(datum) m,year(datum) y
> from inlägg
> where (year(datum) = year(date()) 
> and month(datum) < month(date()))
> or year(datum) < year(date())
> group by month(datum),year(datum)
> order by year(datum)desc,month(datum) desc
> ```

Koden för aktuella månaden fungerade, men detta gick inte. Jag får följande fel: 

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'month(datum) m'.
/sidor/blog/Default.asp, line 14

Förstår inte riktigt vad som är fel! :-/

Tack på förhand!
/Patrik

Permalänk: https://www.webforum.nu/p/1502481

## #4 — Jesper T, 2004-12-10T16:19Z

mellanrum här: order by year(datum)&#9617;desc, month(datum) desc

Permalänk: https://www.webforum.nu/p/1502492

## #5 — hallmert, 2004-12-10T16:20Z

Tack Jesper!

Permalänk: https://www.webforum.nu/p/1502493

## #6 — hallmert, 2004-12-10T16:38Z

Jag förstår dock inte hur jag ska göra!

\<%
Set MinCon = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
	
MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/db.mdb")
SQL = select top 3 month(datum) m,year(datum) y from blogg where (year(datum) = year(date()) and month(datum) \< month(date())) or year(datum) \< year(date()) group by month(datum),year(datum) order by year(datum) desc,month(datum) desc"
rs.Open SQL, MinCon
	
Do While Not rs.EOF
%\>

\<%
rs.MoveNext
Loop
%\>

Det här är kod jag har. Hur ska jag nu göra för att få fram dem i en lista? Hur ska jag skriva ut det? 
Ska jag använda \<% = rs("datum") %\>  ?

Tack! /Patrik

Permalänk: https://www.webforum.nu/p/1502495

## #7 — @nders, 2004-12-10T16:40Z

Till att börja med: du har glömt ett inledande citationstecken när du skapar variabeln *SQL*.

mvh

Permalänk: https://www.webforum.nu/p/1502497

## #8 — hallmert, 2004-12-10T16:41Z

Såg det, och har löst det. Hur ska jag nu skriva ut, med RS-koden jag skrev? Jag provade det och fick följande fel: 

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'month(datum) m'.
/sidor/blog/Default.asp, line 15

Permalänk: https://www.webforum.nu/p/1502498

## #9 — @nders, 2004-12-10T16:44Z

Innan vi kan skriva ut grejerna så måste vi se till att SQL-frågan fungerar. Felmeddelandet får du eftersom det är något fel på SQL-frågan.

Prova att byta ut dina alias *m* och *y* i SQL-frågan till något annat.

Permalänk: https://www.webforum.nu/p/1502500

## #10 — Jesper T, 2004-12-10T16:45Z

Till att börja med: Använd \[kod\]-taggar

Permalänk: https://www.webforum.nu/p/1502501

## #11 — hallmert, 2004-12-10T16:46Z

Sorry! Är hyffsat ny här :)

Har du något förslag på vad jag ska byta ut det till då?

Permalänk: https://www.webforum.nu/p/1502502

## #12 — Jesper T, 2004-12-10T16:47Z

> Hur ska jag skriva ut det?

```
Do While Not rs.EOF
Response.Write rs(0) & " "& rs(1)
rs.MoveNext
```

Permalänk: https://www.webforum.nu/p/1502503

## #13 — @nders, 2004-12-10T16:48Z

Tja, vad som helst annat. Typ *foo* och *bar*? Jag tycker nämligen att SQL-frågan ser rätt ut, så jag förstår inte riktigt vad som skulle kunna vara fel annars.

mvh

Permalänk: https://www.webforum.nu/p/1502504

## #14 — Jesper T, 2004-12-10T16:49Z

Du har väl inget som ligger i variabeln "datum".

```
Dim datum
datum = now()
'eller
datum = "2004-01-14"
'innan sql-satsen
```

Permalänk: https://www.webforum.nu/p/1502506

## #15 — hallmert, 2004-12-10T16:51Z

```
<%
	Set MinCon = Server.CreateObject("ADODB.Connection")
	Set rs = Server.CreateObject("ADODB.RecordSet")
	
	MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/db.mdb")
	datum = now()
	SQL = "select top 3 month(datum) m,year(datum) y from blogg where (year(datum) = year(date()) and month(datum) < month(date())) or year(datum) < year(date()) group by month(datum),year(datum) order by year(datum) desc,month(datum) desc"
	rs.Open SQL, MinCon
	
	Do While Not rs.EOF
	Response.Write rs(0) & " "& rs(1)
	Loop
%>
```

Såhär ser det ut nu, och felmeddelandet blir:

> Error Type:
> Microsoft JET Database Engine (0x80040E14)
> Syntax error (missing operator) in query expression 'month(datum) m'.
> /sidor/blog/Default.asp, line 16

Permalänk: https://www.webforum.nu/p/1502507

## #16 — @nders, 2004-12-10T16:52Z

Och med aliasbyte?

Permalänk: https://www.webforum.nu/p/1502508

## #17 — hallmert, 2004-12-10T16:53Z

Såhär: 

> Error Type:
> Microsoft JET Database Engine (0x80040E14)
> Syntax error (missing operator) in query expression 'month(datum) foo'.
> /sidor/blog/Default.asp, line 17

Permalänk: https://www.webforum.nu/p/1502509

## #18 — @nders, 2004-12-10T16:55Z

Könstigt. Om du är sugen kan du zippa ihop databasen och skicka den till mig (anders@cyber.nu) så kan jag testa och se om jag kan få ihop något. :)

Permalänk: https://www.webforum.nu/p/1502510

## #19 — hallmert, 2004-12-10T16:57Z

Mailat och klart, tack på förhand Anders! :)

Permalänk: https://www.webforum.nu/p/1502511

## #20 — @nders, 2004-12-10T17:02Z

Hej!

Testat och kört. Det verkar trots allt vara alias:en det är fel på. Du kan ju testa att ta bort dem helt. När du anger index så behöver du ju inte några namn. Alltså:

```
<%
	Set MinCon = Server.CreateObject("ADODB.Connection")
	Set rs = Server.CreateObject("ADODB.RecordSet")
	
	MinCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/db.mdb")
	datum = now()
	SQL = "select top 3 month(datum), year(datum) from blogg where (year(datum) = year(date()) and month(datum) < month(date())) or year(datum) < year(date()) group by month(datum),year(datum) order by year(datum) desc,month(datum) desc"
	rs.Open SQL, MinCon
	
	Do While Not rs.EOF
	Response.Write rs(0) & " "& rs(1)
	Loop
%>
```

Om du vill skriva ut månadens namn i stället för månadsnumret kan du i ASP-koden använda funktionen MonthName().

Mvh

Permalänk: https://www.webforum.nu/p/1502512

---

Tråden på webben: https://www.webforum.nu/amne/asp/117619-sortera-efter-månad  
Nästa sida: https://www.webforum.nu/amne/asp/117619-sortera-efter-månad/page2.md
