---
title: "Söka efter en siffra"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13082-söka-efter-en-siffra"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "origon"
published: "2001-12-07T17:54:00.000Z"
updated: "2001-12-08T18:31:00.000Z"
replies: 19
views: 301
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/13082-söka-efter-en-siffra"
---

# Söka efter en siffra

## #1 — origon, 2001-12-07T17:54Z

Hur gör jag för att söka efter värden i ett recordset? 

t.ex. 

```
IF RS("ListView") = "1" THEN
Visa 1
END IF
IF RS("ListView") = "2" THEN
Visa 2 
END IF
```

Om det finns både 1 och 2 ska han visa båda två det kan finnas ända upp till 9 st.

Hoppas ni förstår mig!
;)

\[Redigerat av origon den 07 dec 2001\]

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

## #2 — origon, 2001-12-07T19:59Z

Okej får inget svar på den frågan så det får bli på ett annat sätt då, hur gör jag för att bryta ur siffrorna 1,2,3,4 och lägga dom i olika variablar?
t.ex. så att jag får värde 1 i variabeln var1 och värdet 2 i var2 osv...

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

## #3 — Brimba, 2001-12-07T22:51Z

```
RSarr = RS.GetRows()
SumArr = UBound(RSarr, 2) + 1

for i = 0 to SumArr
   If RSarr(0,i) = i Then
      Visa i
   End If
next
```

Du får byta ut 0:an mot rätt värde.

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

## #4 — origon, 2001-12-08T01:17Z

Jag får det inte att fungera, det blir inget felmeddelande men inget händer.

```
strSQL = "SELECT Listview FROM Users Where User = '"&User&"'"
Set RS = Connection.Execute(strSQL)

		
RSarr = RS.GetRows()
SumArr = UBound(RSarr, 2) + 1
for i = 2 to SumArr
If RSarr(0,i) = i Then
response.write "test"
End If
next
```

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

## #5 — Brimba, 2001-12-08T01:26Z

prova att skriva ut värdet från RSarr

typ 

response.write RSarr(0,0)

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

## #6 — origon, 2001-12-08T01:33Z

Då får jag ut det som är i fältet   alltså  

```
12345
```

\[Redigerat av origon den 08 dec 2001\]

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

## #7 — origon, 2001-12-08T16:39Z

ingen som vet vad felet kan vara???

behöver verkligen få det att fungera.

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

## #8 — LarsG, 2001-12-08T16:43Z

```
RSarr = RS.GetRows()
SumArr = UBound(RSarr, 2) + 1
for i = 2 to SumArr
If cint(RSarr(0,i)) = cint(i) Then
response.write "test"
End If
next
```

Varför börjar du loopen med 2? Du kan aldrig förutsätta att du har en viss ordning i resultatet om du inte använder order by i select-frågan.

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

## #9 — origon, 2001-12-08T16:49Z

Jag fick koden från brimba och han sa

> Du får byta ut 0:an mot rätt värde.

Själv kan jag absolut inget i detta område så jag vet inte vad dom olika sakerna gör.

Men jag vill helt enkelt att den kollar i recordsettet efter en viss siffra finns den ska han skriva ut "test"

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

## #10 — Brimba, 2001-12-08T16:52Z

Ursäkta om du missuppfattade mig...

RSarr = RS.GetRows()
SumArr = UBound(RSarr, 2) + 1
for i = 0 to SumArr
If RSarr(0,i) = i Then
Visa i
End If
next

Den rödmarkerade 0:an var den jag menade

Prova det. annars kan du prova varianter exempelvis:

RSarr = RS.GetRows()
SumArr = UBound(RSarr, 2) + 1
for i = 0 to SumArr
If RSarr(0,i) = cStr(i) Then
Visa i
End If
next

eller

RSarr = RS.GetRows()
SumArr = UBound(RSarr, 2) + 1
for i = 0 to SumArr
If RSarr(0,i) = cInt(i) Then
Visa i
End If
next

Hoppas det fungerar

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

## #11 — origon, 2001-12-08T17:09Z

Hoppas jag förstod dig rätt nu :)

Var det här jag skulle sätta ut siffran jag ville leta efter?

```
15:   RSarr = RS.GetRows()
16:   SumArr = UBound(RSarr, 2) + 1
17:
18:   for i = 0 to SumArr
19:   If RSarr([b]2[/b],i) = i Then
20:   response.write "test"
21:   End If
22:   next
```

För då jag gör det får jag följande felmeddelande.

> Feltyp:
> Körningsfel i Microsoft VBScript (0x800A0009)
> Felaktigt matrisindex: '\[number: 2\]'
> /test.asp, line 19

Tackar för all hjälp ;)

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

## #12 — LarsG, 2001-12-08T17:23Z

Om du vill jämföra med värdet i andra kolumnen i din select-fråga så får du använda index 1 itsället. Index börjar på 0.

Jag förstår inte riktigt vad du vill med din jämförelse. kan du inte lägga till det villkoret i din selectsats?

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

## #13 — origon, 2001-12-08T17:36Z

ehh, jag kan förklara lite mer noggrant vad det är jag vill ha fram.

Användarna ska kunna välja vilka kategorier dom vill ha t.ex. Fordon &#0124; Hus m.m.  och då jag sparar det kan det se ut som följande för en användare 31245 där 1 är t.ex. Fordon och 2 är Hus.

Jag kan inte kolla det i select satsen därför då kontrollerar jag bara ett värde jag vill kunna kolla värdena 1 till 9 och ser recordsettet ut som följande 31245 ska han visa kategorierna 
3 
1
2 
4 
5\.

hoppas ni förstår vad jag menar :)

\[Redigerat av origon den 08 dec 2001\]

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

## #14 — LarsG, 2001-12-08T17:50Z

Då tycker jag att du skall göra om databasen och lägga till en tabell där du sparar användarid och kategoriid. Om någon är intresserad av flera kategorier så blir det flera poster i tabellen.

Det blir bara problem om man försöker lagra sammansatt information i en post. 

Hur går det om du har fler kategorier? Hur kan du då skilja på om det är 1 och 2 elle 12?

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

## #15 — Brimba, 2001-12-08T17:56Z

Jag håller med LarsG..

Gör såhär..

**tblUser**
\*flduID
fldUserName

**tblCat**
\*fldcID
fldCategoryName

**tblUserCat**
\*flduID
\*fldcID

\* betyder nyckel

För då kan du lätt lägga till och plocka bort användare ur olika kategorier. 
Du kan inte heller få några dubbletter, vilket du riskerar om du gör som du hade planerat.

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

## #16 — origon, 2001-12-08T18:02Z

Men blir inte det en onödigt stor databas då? jag menar om jag nu har 1000 användare som kan välja välja 9 kategorier då blir det ju 9000 poster.

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

## #17 — LarsG, 2001-12-08T18:09Z

Ja databasen blir större men dina applikationer blir mycket enklare.

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

## #18 — LarsG, 2001-12-08T18:09Z

Grunden i en databasdesign är att man definerar vilka objekt man har och varje objekt hanteras för sig.
Även om databasen blir större så blir det bättre prestanda då du kan utnyttja de sökfunktioner som finns i databashanteraren. Dels så är den söknig som görs i databasen bättre än den du kan göra i VB-skript och dels så hämtar du enbart de data som är relevanta.

\[Redigerat av LarsG den 08 dec 2001\]

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

## #19 — origon, 2001-12-08T18:26Z

Okej jag litar på er :) ni verkar ju veta vad ni snackar om :e

Tack för allt...

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

## #20 — Brimba, 2001-12-08T18:31Z

Om man delar upp datan istället för att repetera den blir databasen ofta mindre, så jag håller inte riktigt med er.

Tänk er följande:

1000 anställda
varje anställd får gå 4 kurser
20 avdelningar
och det finns totalt 30 kurser att välja på.

**tblKurs**
Pnr
Namn
AvdKod
AvdNamn
Kontoställe
Totalkostnad
KursNamn
KursDatum
KursLängd
KursKostnad

Om vi räknar med defaultvärden för fälten så blir detta ungefär 456 000 byte

Om man normaliserar denna kommer det att bli en otrolig förbättring..

exempelvis:

**tblAnstalld**
Pnr
Namn
AvdKod
TotalKostnad

**tblAvdelningar**
AvdKod
AvdNamn
Kontoställe

**tblGenomKurs**
Pnr
KursTyp
Kursdatum

**tblKurser**
KursTyp
KursNamn
KursLängd
KursKostnad

Total mängd data: 120720 byte

Som det ser ut från börjar är det sista exmemplet större och "sämre", men om man räknar på det blir det mycket bättre.

Lycka till origon!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/13082-söka-efter-en-siffra
