kan man inte använda exit for ?
Hur fanken avslutar man loopen och varje värde bara ska skrivas ut en gång?
14 svar · 404 visningar · startad av bigsky
Hur fanken avslutar man loopen och varje värde bara ska skrivas ut en gång?
kan man inte använda exit for ?
Jo, men hur skulle det se ut? Hur kollar man om samma värde håller på att skrivas ut igen om det finns dubletter?
Do Until rs.EOF
rs.MoveNext
Loop
Är värdena ordnade eller kan dom komma huller och buller?
Ska vara ordnade.
OBS! Inte testat koden.
Denna kod förutsätter att värdena kommer i ordning t.ex. om det är nummer så skall det komma såhär
T.ex.
1
1
1
2
4
4
6
8
8
Inte t.ex.
5
3
6
7
5
Dim Exit 'bool
Dim Temp
Exit = false
Do Until Rs.Eof And Not Exit
If Temp = Rs("kolumn") Then
Exit = true
Else
Temp = Rs("Kolumn")
'Resten av koden
End If
Rs.MoveNext
Loop
Det är nummer ja, men hur blir det om dessa inte är i ordning då?
Dim dic
Set dic = Server.CreateObject("Scripting.Dictionary")
dic.CompareMode = 1
Do Until rs.EOF
If dic.Exists("n" & rs("kolumn").Value) Then
Exit Do
Else
dic("n" & rs("kolumn").Value) = 1
End If
'do your thing...
rs.MoveNext
Loop
Set dic = Nothing
Om det ändå är ett recordset, varför inte sålla bort dubletter när du plockar ut datat?
Engine^, precis, tänkte också det. Jag misstänker att du hämtar ut onödigt mycket ur databasen. Gör en mer specifik SQL-fråga som bara returnerar de poster du vill visa istället.
Spring inte över ån efter vatten. ;)
Såhär ligger det till. I tabellen ligger det ordrar. Varje rad i tabellen är en beställd produkt. Om flera produkter beställts i samma order är det alltså flera rader som har samma order id.
Jag vill lista alla ordrar med order id som länk, alltså until rs.EOF men bara skriva ut det order id en gång för varje order. Det är ju dumt att ha samma länk flera gånger.
Då kan du kan lösa detta direkt i SQL-frågan och slippa massor med jobbig ASP-kod.
Använd Distinct på Order-ID:t för att filtrera bort dubletter:
SELECT DISTINCT OrderID FROM tblOrders
Hoppas du förstår!
Problemet med DISTINCT är att man inte kan sortera resultatet med ORDER BY. Jag får iaf ett felmeddelande.