webForumDet fria alternativet

Problem med att ta fram och visa rätt data.

ASP

2 svar · 197 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Det här är någonting som jag länge har slitet med, men kan inte hitta en bra lösning.
Vad jag vill ha fram är mina ArrNo(text 001 och uppåt)
De ligger i "två serie" under 500 och över 999
Vad jag ville åstadkomma är att få fram, först alla i den undre serien som inte är upptagna, fast plus 20.
Dvs jag kanske har lite "hål" så att det ser ut så här:
49,51,52,55,60
Då ville jag hitta:
50,53,54,56,57,58,59,61,62,63,64 osv
Likadant med den andra "serien" alltså plus 20.

Så här gör jag idag:

SUB makeZeros(ByRef nr)'Denna används för att ge ArrNo inledande nollor
	  	If LEN(nr)=1 Then
			nr= "00" & Index
		ElseIf LEN(Index)=2 Then
			nr= "0" & Index
		Else
			nr=nr
		End If
END SUB

<%
strSQL = "SELECT arrno FROM t_songtitlar   ORDER BY CInt(arrno)"
Call MakeRecordSet(rst,strSQL,Connection)

%>
<select  CLASS="SKUGGA" Style ="width: 130" SIZE="1" NAME="arrno">
<option></option>
	  <%
	  Dim fldArrNo
	  Dim Index
	  Dim LastNumber

	     If Not rst.EOF Then
	         Set fldArrNo = rst("ArrNo")
	         LastNumber = CLng(fldArrNo.Value) - 1
	         Do Until rst.EOF

	             Number = CLng(fldArrNo.Value) - 1

	             For Index = LastNumber To Number
					CALL makeZeros(Index)

	                if Index > 000 then

 %>
<option value="<% = Index %>"><% = Index %></option>
<%
					end if
	             Next
	             LastNumber = Number + 2
	          Rst.MoveNext
	         Loop
   		End If

   		dim i
   		for i = LastNumber to LastNumber + 20
			CALL makeZeros(i)
   		%>
<option value="<% = i %>"><% = i %></option>
 <%	next  %>
</select>

Vad som är fel här, är att den skriver ut ALLA siffrorna mellan den
lägre serien och den högre, och det är just det som stör mig.
Går det att fixa detta?
Jag :q

Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Du vill alltså visa poster som inte finns, helt enkelt?
Det finns sql som fixar det automatiskt.
Testa att i Access använda deras guider för Frågor; där finns den fördefinierad.

Hoppas det är en ledtråd.

Angånde befintlig kod:
Jag tolkar att den visar alla ArrNo, även de som redan är upptagna?
Då borde inte frågan
strSQL = "SELECT arrno FROM t_songtitlar ORDER BY CInt(arrno)"
fungera ordentligt?

Medlem sedan mars 20011 880 inlägg
#3

Hej Johnny.
Problemet är att datatypen är text, så jag tror att bara det faller
på att det inte går att göra som du föreslog.
Det script som jag har fungerar bra, vad jag inte tycker om är att
den plockar fram alla Arrno fram till 1020

Antag så här
I den första serien så är högsta ArrNo 64.
I den andra serien så är högsta ArrNo 1009

Då hadde jag velat att den plockade först fram alla "hål"
dvs de ArrNo som inte är upptagna plus 65,66,67, osv till
ArrNo 84.
Dessutom lägga till ArrNo 1010,1011 osv till Arrno 1030.

Det här tror jag inte går att göra med en SQL utan man får
nog gnuga geniknölarna lite.

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)