---
title: "Hjälp med slump"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13138-hjälp-med-slump"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Skarre"
published: "2001-12-11T07:59:00.000Z"
updated: "2001-12-11T20:42:00.000Z"
replies: 6
views: 273
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/13138-hjälp-med-slump"
---

# Hjälp med slump

## #1 — Skarre, 2001-12-11T07:59Z

Om någon skulle vilja ge mig ett förslag på hur jag kan modifiera nedanstående sql-sats till att slumpmässigt välja posterna. 

Nu väljs de tio översta posterna med sortering efter frågans ID, men jag vill alltså att man ska få upp (i alla fall några) nya frågor varje gång man kör sidan.
 

```
Set rsQue = Server.CreateObject("ADODB.RecordSet")

strSplitCat = Split(strCategories,",")
intItems = UBound(strSplitCat) + 1
intTop = CInt(intNrQue / intItems)

sqlQue = ""
For i = 0 To UBound(strSplitCat)
	If i > 0 Then 
		sqlQue = sqlQue & "UNION ALL "
	End If
	sqlQue = sqlQue & "SELECT TOP " & intTop & " * FROM tblQue INNER JOIN tblCat ON (tblQue.CatID = tblCat.CatID) WHERE tblQue.CatID = " & strSplitCat(i) & " AND tblQue.Level = " & intLevel & " ORDER BY tblQue.QID "	
Next

rsQue.Open sqlQue, objConn, 1, 1, 1
```

PS. Jag betackar mig inlägg som hänvisar mig till att söka på "slump". :)

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

## #2 — mrblonde, 2001-12-11T09:23Z

frågan diskuterades nyligen

<http://cgi.webforum.nu/wf/Forum11/HTML/007668.html>

så jag hänvisar till den. :e

Sökte du på "random"? ;)

btw - här finn svaret på frågen
[How can I pick random records from a table?](http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=65), man kan alltid lite på 4guysfromrolla.com :)

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

## #3 — Skarre, 2001-12-11T10:33Z

Jag testade nr. 2 på 4guys... men när jag försökte få fram fler än 11 poster fick jag följande meddelande:

> Error Type:
> Microsoft VBScript runtime (0x800A0009)
> Subscript out of range: 'intChoose'

Här är koden, med raden som ger felet i fetstil:

```
DELIM = ","

Set rsQuestions = objConn.Execute("SELECT QID FROM tblQue")

arrAllKeys = rsQuestions.GetRows ' convert RS to an array!
intRecCount = UBound(arrAllKeys, 2) + 1

Const intChoiceCount = 12 ' or however many you want
strChoices = ""
strKeys = ""
intChosen = 0

Do While intChosen < intChoiceCount
  intChoose = Int(Rnd * intRecCount) + 1
  intTest = "#" & intChoose & "#"
  If InStr(strChoices, intTest) = 0 Then
	  strChoices = strChoices & intTest
	  [b]strKeys = strKeys & DELIM & arrAllKeys(0, intChoose)[/b]
	  intChosen = intChosen + 1
  End If
Loop

strKeys = Mid(strKeys, 2)

sqlQuestions = "SELECT * FROM tblQue WHERE QID IN (" & strKeys & ")"
Set rsQuestions = objConn.Execute(sqlQuestions)

Do Until rsQuestions.EOF
	Response.Write rsQuestions("QID") & "<br>"
	rsQuestions.MoveNext
Loop
```

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

## #4 — ConnyFox, 2001-12-11T11:23Z

Jo d e sant d diskuterades nyligen men om jag inte minns helt fel fick han som öppnat tråden alldrig något vettigt svar :e

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

## #5 — PatrikB, 2001-12-11T17:11Z

Nä, för att många av oss ger ett "generellt" svar så att frågeställaren kan "labba" lite och förhoppningsvis lära sig något på kuppen oxå.
Med de uppgifterna som fanns/finns här på forumet så skulle man kunna koda fram något, ok att det inte funkar vid första försöket, komma tillbaka med frågor om varför det inte funka och sedan få ett svar. 

Allt kan inte serveras på ett silver fat ... 

cya,
PatrikB

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

## #6 — PatrikB, 2001-12-11T18:09Z

kika in här .... finns en lösning hur man slumpar från databas: <http://cgi.webforum.nu/wf/Forum11/HTML/007668-2.html#32> 

cya,
PatrikB

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

## #7 — Skarre, 2001-12-11T20:42Z

Jag var mer ute efter en enkel lösning som inte skulle innebära en total omskrivning av min existerande kod (vilket alla lösningar som föreslagits gjort hittills). Jag har hört någonstans att det fanns någonting inbyggt i Jet SQL i stil med "ORDER BY RAND" eller liknande, men jag hade tydligen fel. Jag har varken tid (projektet ska visas upp på fredag) eller ork att skriva om hela koden för så jag struntar nog i det. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/13138-hjälp-med-slump
