---
title: "automatutskrift av månader och år (nyhetsscript)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/92060-automatutskrift-av-månader-och-år-nyhetsscript"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Liam"
published: "2003-12-07T15:07:44.000Z"
updated: "2003-12-07T19:16:54.000Z"
replies: 12
views: 275
page: 1
pages: 1
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/92060-automatutskrift-av-månader-och-år-nyhetsscript"
---

# automatutskrift av månader och år (nyhetsscript)

## #1 — Liam, 2003-12-07T15:07Z

Hej

Har en tabell:

Nyhet \| Date \| Month \| Year

t.ex. 

Blabla \| 2003-03-21 \| 03 \| 2003

Nu är det så att tabellen innehåller väldigt mycket information från flera olika månader och år.

Jag skulle därför vilja presentera alla månader lite snyggt längst ner.

om jag började skriva nyheter i juli 2001 och om vi låtsas att dagens datum är 2003-11-19 så blir det t.ex.

2001
\------
Juli, Augusti, September, Oktober, November, December

2002
\------
Januari, Februari, Mars, April, Maj, Juni, Juli, Augusti, September, Oktober, November, December

2003
\------
Januari, Februari, Mars, April, Maj, Juni, Juli, Augusti, September, Oktober, November

Dvs, December syns inte eftersom det inte finns någon post för den månaden i det året.

Problemet är ju att jag vill att detta ska ske med automatik. Dvs, den ska känna av att juni 2001 var första månaden och att November är sista månaden som det finns nyheter... om jag skriver en nyhet i December så ska man ju se den sen... man ska alltså inte behöva gå in och lägga till manuellt.

Någon som har en bra lösning?

Tack på förhand!

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

## #2 — LarsG, 2003-12-07T15:19Z

```
sql = "select distinct year(date),month(date) from nyhet order by 1,2"
set rs = connect.execute(sql)
pyear = 0
months = ""
while not rs.eof
 if  pyear <> clng(rs(0)) then
     if  months <> "" then 
         response.write months & "<br>"
          months = ""
     end if
     pyear = clng(rs(0))
     response.write pyear & "<br>"
     response.write "-------" & "<br"
 end if
  if  months <> "" then months = months & ", "
  months = months & monthname(cint(rs(1)))
  rs.movenext
wend
  if  months <> "" then response.write months & "<br>"
rs.close
set rs = nothing
```

Beroende på DBMS så får du kanske ändra på funktionerna year och month

Det är onödigt att lagra år och månad separat.

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

## #3 — Liam, 2003-12-07T16:35Z

Åren listas upp snyggt, men månaderna saknas. Troligen är det olika DBMS. Jag kör access med jet. Tips?

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

## #4 — LarsG, 2003-12-07T16:45Z

Om det är access så får du skriva så här istället (date är inget bra namn på en kolumn.)

```
ql = "select distinct year([date]),month([date]) from nyhet order by 1,2"
```

Kan du lägga till en utskrift på vilka värden du får tillbaka från databasen?

```
while not rs.eof
  response.write "Debug: " & rs(0) & ":" rs(1) & "<br>"
```

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

## #5 — Liam, 2003-12-07T16:56Z

Tog och ändrade date till datum istället.

Resultat av debug:

Debug: 2001:8

2001
\-------Debug: 2001:10
Debug: 2001:11
Debug: 2001:12
Debug: 2002:1
August, September, October, November, December

2002
\-------Debug: 2002:3
Debug: 2002:4
Debug: 2002:5
Debug: 2002:6
Debug: 2002:7
Debug: 2002:8
Debug: 2002:9
Debug: 2002:10
Debug: 2002:11
Debug: 2002:12
Debug: 2003:1
January, February, March, April, May, June, July, August, September, October, November, December

2003
\-------Debug: 2003:3
Debug: 2003:4
Debug: 2003:5
Debug: 2003:6
Debug: 2003:7
Debug: 2003:9
Debug: 2003:10
Debug: 2003:11
Debug: 2003:12
January, February, March, April, May, June, July, September, October, November, December

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

## #6 — LarsG, 2003-12-07T17:14Z

Om du lägger till följande 

```
session.lcid = 1053
```

så skall du få svenska månadsnamn.

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

## #7 — Liam, 2003-12-07T17:54Z

Får passa på att tacka för all hjälp hittills. Har fungerat skitbra, språket blev rätt nu också. Men... om jag tar bort debugen så syns inte månaderna längre. Varför kommer de bara upp när man väljer att skriva ut rs(0) och rs(1) ?

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

## #8 — LarsG, 2003-12-07T18:07Z

Det förstår jag inte riktigt. Jag tyckte också att du fick upp för många månader i förhållande till debugutskriften. T.ex. så borde inte september 2001 ha kommit med.

Kan du posta din nuvarande kod?

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

## #9 — Liam, 2003-12-07T18:15Z

Koden är snarlik din, har inte ändrat nåt knappt:

sql = "select distinct year(datum),month(datum) from tblNews order by 1,2"
set rs = connect2.execute(sql)
pyear = 0
months = ""

while not rs.eof
  response.write "Debug: " & rs(0) & ":" & rs(1) & "\<br\>"
 if  pyear \<\> clng(rs(0)) then
     if  months \<\> "" then 
         response.write months & "\<br\>"
          months = ""
     end if
     pyear = clng(rs(0))
     response.write "\<br\>" & pyear & "\<br\>"
     response.write "-------" & "\<br"
 end if
 
  if  months \<\> "" then months = months & ", "
  months = months & monthname(cint(rs(1)))
  rs.movenext
wend
  if  months \<\> "" then response.write months & "\<br\>"
rs.close
set rs = nothing

och sen håller jag med om att debugen inte stämmer riktigt, men månaderna som skrivs ut är helt rätt. Det finns data i alla de månaderna.

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

## #10 — LarsG, 2003-12-07T18:50Z

Här är det nog.

```
 response.write "-------" & "<br"
```

```
 response.write "-------" & "<br>"
```

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

## #11 — Liam, 2003-12-07T19:03Z

GULD!

Alltid ska det vara något litet "fel" som ställer till det...

Jag lade även till:

months = months & "\<a href='nyheter.asp?month=" & rs(1) & "&year=" & rs(0) & "'\>" & monthname(cint(rs(1))) & "\</a\>"

istället för:

months = months & monthname(cint(rs(1)))

för att kunna göra länkar av det.

En utseendegrej jag tänkte på bara... är det svårt att ändra ordning på åren så att 2003 kommer överst istället för 2001? Det kanske blir mer logiskt så ur användarperspektiv?

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

## #12 — LarsG, 2003-12-07T19:06Z

Nej då

```
ql = "select distinct year(datum),month(datum) from nyhet order by 1 desc,2"
```

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

## #13 — Liam, 2003-12-07T19:16Z

aha, så enkelt det var. jag lade desc sist och fick det inte att fungera..

Jättetack för all hjälp!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/92060-automatutskrift-av-månader-och-år-nyhetsscript
