---
title: "Räknare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/145937-räknare"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SoulGod"
published: "2006-04-24T10:33:54.000Z"
updated: "2006-04-25T15:31:15.000Z"
replies: 7
views: 547
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/145937-räknare"
---

# Räknare

## #1 — SoulGod, 2006-04-24T10:33Z

Håller på att spara in den del info i en databas, och vill ha följande funktion.

Jag vill att en "räknare" skall tilldela varje rad i databasen, ett visst numer,
baserat på fältet "pos". 
Om:
"pos" = chef , så skall det börja på 81xx
"pos" = dag , så skall det börja på 85xx
"pos" = kvall , så skall det börja på 89xx

Alltså t.ex 8101 , 8501 & 8901 o.s.v.

Hur gör jag detta?

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

## #2 — CatZ, 2006-04-24T11:09Z

```
dim intPos
If pos = "chef" Then
	intPos = 8101
ElseIf pos = "dag" Then
	intPos = 8501
Else
    intPos = 8901
End If
```

Detta får du ju lägga in i loopen som skriver till databasen och modifiera som du vill. Inte snyggaste lösningen kanske men den fungerar :)

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

## #3 — SoulGod, 2006-04-25T06:24Z

Ehm, nu är jag lite väck här ..
loop ? 
Menar du i :

```
                  <%
if Request.QueryString("do") = "fixa" THEN
	namn = Request("namn")
	pos = Request("pos")
	fodd = Request("fodd")
	bor = Request("bor")
	mail = Request("mail")
	press = Request("press")

			Connect.Execute("INSERT INTO anstallda (namn,pos,fodd,bor,mail,press) VALUES('"& namn &"','"& pos &"','"& fodd &"','"& bor &"','"& mail &"','"& press &"')")

'	Next
	Connect.Close 
	Set Connect = Nothing
%>
```

För jag har ingen loop i det dokumentet.

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

## #4 — Jesper T, 2006-04-25T06:50Z

Tror att CatZ menar om du vill uppdatera en redan befintlig tabell med de värdena.

```
Function [red]getInt[/red](value)
Dim intPos
    Select Case value
        Case "chef" : intPos = 81
        Case "dag" : intPos = 85
        Case "kvall" : intPos = 89
    End Select
    getInt = intPos
End Function

INSERT...VALUES('"& namn &"',"& [red]getInt[/red](pos) &"...
```

 

Men vad skall du ha där xx står?

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

## #5 — SoulGod, 2006-04-25T07:33Z

Ah... jag vet inte, alltså, jag vill att detta id skall fixas "samtidigt" som jag lägger in infon första gången i databasen så att säga..

xx skall alltså vara (81xx) , skall bli 8101 , och nästa blir 8102 o.s.v.

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

## #6 — J.N., 2006-04-25T07:54Z

HEJ!

För att få rätt slutsiffra, hämta ur databasen vilken som är högst av 81xx/85xx/89xx. Lägg därefter till ett.
(...MAX id WHERE id\>8200)

Vad händer när du kommer till 8199? Eller "det ska inte hända"?

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

## #7 — SoulGod, 2006-04-25T07:59Z

Det kommer aldrig hända, eftersom vi ej har så många anställda.
Men hur gör jag nu, för att ens "skapa" idét från början då?

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

## #8 — J.N., 2006-04-25T15:31Z

HEJ!

Med fortsättning på Jesper T:s kod, och hoppas det var det du undrade om:

```
Function getInt(value)
    Select Case value
    Case "chef"
        'intPos = 81 denna lär väl inte behövas längre?
        str_sqldel = " id<8200"
        ...
    End Select
    getInt = intPos
End Function

pos = getInt(request("pos"))

Set RSmax = Connect.Execute("SELECT MAX id FROM tbl WHERE" & str_sqldel)
str_maxid = RSmax("id") + 1

Connect.Execute("INSERT INTO anstallda (namn,pos...) VALUES('"& namn &"',"& str_maxid &"...)")
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/145937-räknare
