webForumDet fria alternativet

Ändra ordning på innehållet i en kolumn

ASP

1 svar · 227 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Hej alla glada!

Jag har en tabell med diverse information. Har en kolumn som innehåller siffror för att kunna sortera på dessa.
Så här ser min tabell ut. Access 2003.

id | html_sida | lank_namn | lank_ordning | etc...

Säg att lank_namn och lank_ordning innehåller följande data

testLankA 1
testLankB 2
testLankC 3

Behöver skapa en funktion där man kan byta ordning till valfri ordning. Ex:

testLankC 1
testLankA 2
testLankB 3

Har totalt hjärnsläpp nu. Är det någon som har något tips på hur jag kommer igång x( :o :q

Medlem sedan nov. 20017 144 inlägg
#2

Ja, det där är inte en lätt sak... trixade med det ett tag innan jag hittade en lösning som funkade.
Postar den här så har du en början:

SubUP_DOWN("up",12)'Post 12 skall upp ett "hack".
SubUP_DOWN("down",15)'Post 13 skall ner ett "hack".

	sub SubUP_DOWN(dir,id)
				Set countid = Connection.execute("SELECT t1.lank_ordning AS foo,COUNT(t2.lank_ordning) AS bar FROM tabell AS t1, tabell AS t2 WHERE t1.id = "& id &" GROUP BY t1.id")
				If Not countid.BOF Or Not countid.EOF Then
					Dim foo,bar 
					foo = countid("foo")
					bar = countid("bar")
				end if
				countid.close : set countid = nothing
		
			if dir = "up" then 'Flytta upp posten
				if cInt(foo) > 1 then
					Connection.execute("UPDATE tabell AS t1, tabell AS t2 SET t2.lank_ordning = CASE WHEN t2.lank_ordning = t1.lank_ordning THEN t1.lank_ordning - 1 ELSE t1.lank_ordning END WHERE t1.id = "& id &" AND t2.lank_ordning BETWEEN t1.lank_ordning - 1 AND t1.lank_ordning"),,128
				end if
			else 'Flyttan ner posten
				if cInt(foo) < cInt(bar) then
					Connection.execute("UPDATE tabell AS t1, tabell AS t2 SET t2.lank_ordning = CASE WHEN t2.lank_ordning = t1.lank_ordning THEN t1.lank_ordning + 1 ELSE t1.lank_ordning END WHERE t1.id = "& id &" AND t2.lank_ordning BETWEEN t1.lank_ordning AND t1.lank_ordning + 1"),,128
				end if
			end if
	end sub
259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)