---
title: "Ta bort array..?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/87520-ta-bort-array"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "bigsky"
published: "2003-10-03T01:38:50.000Z"
updated: "2003-10-05T12:35:43.000Z"
replies: 17
views: 391
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/87520-ta-bort-array"
---

# Ta bort array..?

## #1 — bigsky, 2003-10-03T01:38Z

Hur får jag fäljande kod att fungera så att jag kan skriva ut posterna från databasen direkt med rs.SurveyArchive("blabla") istället för att ha det i arrayer?

```
Dim rsSurveyArchive, arrRecSet, intPage, intPostsPerPage, intFirstPost, intTotalPosts, intPages, intLastPost, strNext, i, strName, intNavStart, intNavEnd, n
	SQL = "SELECT * FROM survey ORDER BY Id DESC"
    Set rsSurveyArchive = ConnectToSurvey.Execute(SQL)
	If Not rsSurveyArchive.EOF Then arrRecSet = rsSurveyArchive.GetRows()
	  If IsArray(arrRecSet) Then
	    intPostsPerPage = 3
	      If Len(Trim(Request.QueryString("page"))) > 0 Then intPage = CInt(Trim(Request.QueryString("page"))) Else intPage = 1
	        intFirstPost = (intPage - 1) * intPostsPerPage
	        intTotalPosts = UBound(arrRecSet, 2)
	        intPages = ((intTotalPosts)\intPostsPerPage) + 1
	          If intFirstPost + (intPostsPerPage - 1) >= UBound(arrRecSet, 2) Then
	            intLastPost = UBound(arrRecSet, 2)
	          Else
	            intLastPost = intFirstPost + (intPostsPerPage - 1)
	            strNext = True
	          End If
	  End If
	For i = intFirstPost To intLastPost
	strDate = arrRecSet(1,i)
	strSurvey = arrRecSet(3,i)
```

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

## #2 — LR^evil.sid, 2003-10-03T02:44Z

Så kanske... Har inte testat

```
Dim rsSurveyArchive, arrRecSet, intPage, intPostsPerPage, intFirstPost, intTotalPosts, intPages, intLastPost, _
    strNext, i, strName, intNavStart, intNavEnd, n
SQL = "SELECT COUNT(*) FROM survey"
Set rsSurveyArchive = ConnectToSurvey.Execute(SQL)

If Not rsSurveyArcive.EOF Then
	intTotalPosts = rsSurveyArchive(0)
	If Len(Trim(Request.QueryString("page"))) > 0 Then intPage = CInt(Trim(Request.QueryString("page"))) Else intPage = 1
	intPostsPerPage = 3
	intFirstPost = (intPage - 1) * intPostsPerPage

	SQL = "SELECT * FROM survey  ORDER BY Id DESC LIMIT "&intFirstPost&", "&(intFirstPost + intPostsPerPage)
	Set rsSurveyArchive = ConnectToSurvey.Execute(SQL)

	While Not rsSurveyArchive.EOF Then
		strDate = rsSurveyArchive.Fields("blabla")
		strSurvey = rsSurveyArchive.Fields("blabla")
	WEnd
	Set rsSurveyArchive = Nothing
	Set ConnectToSurvey = Nothing

	intPages = ((intTotalPosts)\intPostsPerPage) + 1
	If intFirstPost + (intPostsPerPage - 1) >= intTotalPosts Then
		intLastPost = intTotalPosts
	Else
		intLastPost = intFirstPost + (intPostsPerPage - 1)
		strNext = True
	End If
Else
	Response.Write "No records..."
End If
```

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

## #3 — bigsky, 2003-10-03T19:45Z

Något annat förslag, någon?

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

## #4 — solbulle, 2003-10-03T20:00Z

Fungerade inte det där mao?
Varför vill du inte ha det i arrays?

Du kan ju även nu, i ditt orginalscript, använda dig av typ:
response.write rsSurveyArchive("id")
om du så önskar.
(antar att du får köra en rsSurveyArchive.movefirst först.)

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

## #5 — bigsky, 2003-10-03T21:17Z

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel i ORDER BY-instruktion

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

## #6 — Sebbe, 2003-10-03T21:20Z

Vad är det du vill göra med koden? Skulle kanske vara lite lättare att få något sammanhang i det då. Är det ett paging-script eller?

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

## #7 — bigsky, 2003-10-03T21:21Z

Jajamen.

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

## #8 — bigsky, 2003-10-03T21:22Z

Det är det script som Palle erbjuder här på wF, men jag vill inte ha det i arrayer för då måste jag ändra så mycket annat som redan är kodat och klart.

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

## #9 — Sebbe, 2003-10-03T21:37Z

Kanske såhär då?

```
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM survey ORDER BY id DESC"
objRS.Open strSQL, ConnectToSurvey, 3, 3

If NOT objRS.EOF Then
  intPostsPerPage = 3
  intTotalPosts = objRS.RecordCount

  If Len(Trim(Request.QueryString("page"))) > 0 Then intPage = CInt(Trim(Request.QueryString("page"))) Else intPage = 1

  intFirstPost = (intPage - 1) * intPostsPerPage
  intPages = ((intTotalPosts)\intPostsPerPage) + 1

  If intFirstPost + (intPostsPerPage - 1) >= intTotalPosts Then
    intLastPost = intTotalPosts
  Else
    intLastPost = intFirstPost + (intPostsPerPage - 1)
    strNext = True
  End If

  Do Until objRS.EOF OR intCount => intLastPost
    intCount = intCount + 1

    If intFirstPost > 0 Then
      For i = 1 To intFirstPost
        objRS.MoveNext
      Loop
    End If

    strDate = objRS("date")
    strSurvey = objRS("survey")
    'O.s.v...

    objRS.MoveNext
  Loop
End If

objRS.Close : Set objRS = Nothing
```

Känns dock inte som det optimala sättet att göra det på. :l

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

## #10 — bigsky, 2003-10-03T23:45Z

Med följande kod blir det tre sidor att bläddra mellan. Men på den första visas på två poster, på den andra visas endast en post och på den sista sidan får jag ett felmeddelande som säger att en begärda åtgärden kräver en aktuell post. Koden verkar räkna fel...

```
Dim rsSurveyArchive
    Set rsSurveyArchive = Server.CreateObject("ADODB.Recordset")
    SQL = "SELECT * FROM survey ORDER BY Id DESC"
    rsSurveyArchive.Open SQL, ConnectToSurvey, 3, 3
    If Not rsSurveyArchive.EOF Then
      intPostsPerPage = 3
      intTotalPosts = rsSurveyArchive.RecordCount
      If Len(Trim(Request.QueryString("page"))) > 0 Then intPage = CInt(Trim(Request.QueryString("page"))) Else intPage = 1
        intFirstPost = (intPage - 1) * intPostsPerPage
        intPages = ((intTotalPosts)\intPostsPerPage) + 1
        If intFirstPost + (intPostsPerPage - 1) >= intTotalPosts Then
          intLastPost = intTotalPosts
        Else
          intLastPost = intFirstPost + (intPostsPerPage - 1)
          strNext = True
        End If
    Do Until rsSurveyArchive.EOF OR intCount => intLastPost
    intCount = intCount + 1
    If intFirstPost > 0 Then
      For i = 1 To intLastPost
        rsSurveyArchive.MoveNext
      Next
    End If
```

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

## #11 — Sebbe, 2003-10-04T10:24Z

Vilken av navigeringarna använder du? Om du använder knapparna så skulle jag lösa det på det här sättet:

```
<%
If Request.QueryString("page") = "" OR NOT IsNumeric(Request.QueryString("page")) Then
  intPage = 1
Else
  intPage = CInt(Request.QueryString("page"))
End If

Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM survey ORDER BY id DESC"
objRS.Open strSQL, ConnectToSurvey, 1, 3

If NOT objRS.EOF Then
  objRS.AbsolutePage = intPage
  objRS.PageSize = 3

  Do Until objRS.EOF OR intCount => objRS.PageSize
    intCount = intCount + 1

    strDate = objRS("date")
    strSurvey = objRS("survey")
    'O.s.v...

    objRS.MoveNext
  Loop

  If objRS.PageCount > 1 Then
    If intPage > 1 Then
      Response.Write("<button onclick=""parent.location.href='default.asp?page=';"" title="" Första "">&nbsp;<<&nbsp;</button>" & vbCrLf)
      Response.Write("<button onclick=""parent.location.href='default.asp?page=" & intPage - 1 & "';"" title="" Backa "">&nbsp;<&nbsp;</button>" & vbCrLf)
    Else
      Response.Write("<button disabled=""disabled"">&nbsp;<<&nbsp;</button>" &vbCrLf)
      Response.Write("<button disabled=""disabled"">&nbsp;<&nbsp;</button>" & vbCrLf)
    End If

    If objRS.PageCount < 5 Then intPages = objRS.PageCount : intStart = 1
    If objRS.PageCount = 5 Then intPages = 5 : intStart = 1

    If objRS.PageCount > 5 Then
      If intPage > 5 Then
        intPages = intPage : intStart = intPage - 5
      Else
        intPages = 5 : intStart = 1
      End If
    Else
      intPages = objRS.PageCount : intStart = 1
    End If

    For i = intStart To intPages
      If i = intPage Then
        Response.Write("<button>&nbsp;<strong>" & i & "</strong>&nbsp;</button>" & vbCrLf)
      Else
        Response.Write("<button onclick=""parent.location.href='default.asp?page=" & i & "';"" title="" Sida " & i & " "">&nbsp;" & i & "&nbsp;</button>" & vbCrLf)
      End If
    Next

    If intPage < objRS.PageCount Then
      Response.Write("<button onclick=""parent.location.href='default.asp?page=" intPage + 1 "';"" title="" Nästa "">&nbsp;>&nbsp;</button>" & vbCrLf)
      Response.Write("<button onclick=""parent.location.href='default.asp?page=" & objRS.PageCount & "';"" title="" Sista "">&nbsp;>>&nbsp;</button>" & vbCrLf)
    Else
      Response.Write("<button disabled=""disabled"">&nbsp;>&nbsp;</button>" & vbCrLf)
      Response.Write("<button disabled=""disabled"">&nbsp;>>&nbsp;</button>" & vbCrLf)
    End If
  End If
End If

objRS.Close : Set objRS = Nothing
```

Hoppas att det funkar som du vill, det gör det säkert inte, men man måste ju försöka. ;)

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

## #12 — bigsky, 2003-10-04T19:19Z

Jo, nog fungerar den som jag vill alltid. Men det är dock fortfarande så att det på första sidan bara visas 5 poster (de fem första i DBn), på andra sidan endast 1 post (den sista i DBn) och på sista sidan av de tre sidor som det blir, visas ingenting. Bara Nästa \| Sista etc. Det finns totalt 15 poster.
Sedan undrar jag vilka parametrar från din kod jag ska använda för att kunna skriva ut att nu visas post 1 - 5 av totalt 15.

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

## #13 — Sebbe, 2003-10-04T19:56Z

Den här koden funkar för mig när jag testar! :D

```
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb")

If Request.QueryString("page") = "" OR NOT IsNumeric(Request.QueryString("page")) Then
  intPage = 1
Else
  intPage = CInt(Request.QueryString("page"))
End If

Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM test"
objRS.Open strSQL, objConn, 1, 3

If NOT objRS.EOF Then
  objRS.PageSize = 3
  objRS.AbsolutePage = intPage

  Do Until objRS.EOF OR intCount => objRS.PageSize
    intCount = intCount + 1

    strDate = objRS("date")
    strSurvey = objRS("survey")
    'O.s.v...

    objRS.MoveNext
  Loop

  Response.Write("<br>")

  If objRS.PageCount > 1 Then
    If intPage > 1 Then
      Response.Write("<button onclick=""parent.location.href='default.asp?page=';"" title="" Första ""> << </button>" & vbCrLf)
      Response.Write("<button onclick=""parent.location.href='default.asp?page=" & intPage - 1 & "';"" title="" Backa ""> < </button>" & vbCrLf)
    Else
      Response.Write("<button disabled=""disabled""> << </button>" &vbCrLf)
      Response.Write("<button disabled=""disabled""> < </button>" & vbCrLf)
    End If

    If objRS.PageCount < 5 Then intPages = objRS.PageCount : intStart = 1
    If objRS.PageCount = 5 Then intPages = 5 : intStart = 1

    If objRS.PageCount > 5 Then
      If intPage > 5 Then
        intPages = intPage + 1 : intStart = intPage - 3
      ElseIf intPage = 5 Then
        intPages = intPage + 1 : intStart = intPage - 3
      Else
        intPages = 5 : intStart = 1
      End If
    Else
      intPages = objRS.PageCount : intStart = 1
    End If

    If intPages > objRS.PageCount Then intPages = objRS.PageCount : intStart = objRS.PageCount - 4

    For i = intStart To intPages
      If i = intPage Then
        Response.Write("<button> <strong>" & i & "</strong> </button>" & vbCrLf)
      Else
        Response.Write("<button onclick=""parent.location.href='default.asp?page=" & i & "';"" title="" Sida " & i & " ""> " & i & " </button>" & vbCrLf)
      End If
    Next

    If intPage < objRS.PageCount Then
      Response.Write("<button onclick=""parent.location.href='default.asp?page=" & intPage + 1 & "';"" title="" Nästa ""> > </button>" & vbCrLf)
      Response.Write("<button onclick=""parent.location.href='default.asp?page=" & objRS.PageCount & "';"" title="" Sista ""> >> </button>" & vbCrLf)
    Else
      Response.Write("<button disabled=""disabled""> > </button>" & vbCrLf)
      Response.Write("<button disabled=""disabled""> >> </button>" & vbCrLf)
    End If
  End If
Else
  Response.Write("Det fanns inga poster.")
End If

objRS.Close : Set objRS = Nothing
objConn.Close : Set objConn = Nothing
%>
```

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

## #14 — bigsky, 2003-10-05T00:23Z

Tack nu fungerar det. Hade du något förslag på hur jag ska skriva ut "visar post 1 - 5 av total 15 poster"?

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

## #15 — Sebbe, 2003-10-05T00:34Z

```
If intPage * objRS.PageSize > objRS.RecordCount Then
  intTill = objRS.RecordCount
Else
  intTill = intPage * objRS.PageSize
End If

Response.Write("Visar nu post " & (intPage - 1) * objRS.PageSize + 1 & " till " & intTill & " av totalt " & objRS.RecordCount & ".<p>")

Do Until objRS.EOF OR intCount => objRS.PageSize
  intCount = intCount + 1
  strDate = objRS("date")
  strSurvey = objRS("survey")

  'O.s.v...

  objRS.MoveNext
Loop
```

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

## #16 — bigsky, 2003-10-05T00:50Z

Perfekt, och tillsist ville jag ju då att det skulle stå "Visar nu post ... till ... av X poster".

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

## #17 — Sebbe, 2003-10-05T09:38Z

Vilket det jag skrev i mitt tidigare inlägg gör!

```
If intPage * objRS.PageSize > objRS.RecordCount Then
  intTill = objRS.RecordCount
Else
  intTill = intPage * objRS.PageSize
End If

Response.Write("Visar nu post " & (intPage - 1) * objRS.PageSize + 1 & " till " & intTill & " av totalt " & objRS.RecordCount & " poster.<p>")
```

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

## #18 — bigsky, 2003-10-05T12:35Z

Nja, det stod inte i ditt förra inlägg först, därför frågade jag om det, men nu har du lagt till det. Tack för all hjälp.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/87520-ta-bort-array
