penso di aver trovato il problema.

Qui sembra come se facesse un conto errato dei record,, mi attiva il link pagina successiva anche se non serve.
Premesso che le query sono corrette perchè le ho testate in access ecco il codice:

<aspataGrid id="dgservizilimitrofi" runat="server" PageSize="5" AllowCustomPaging="True" CellPadding="2"
AllowPaging="True" BorderWidth="0px" AutoGenerateColumns="False" Width="700px" OnPageIndexChanged="pagservizilimitrofi">
<HeaderStyle cssclass=cap></HeaderStyle>
<ItemStyle cssclass=txtr></ItemStyle>
<FooterStyle cssclass=cap></FooterStyle>
<PagerStyle NextPageText="Pagina successiva" PrevPageText="Pagina precedente"></PagerStyle>
<Columns>
<asp:TemplateColumn HeaderText="Informazioni Utili zone limitrofe" ItemStyle-Width="700px">
<ItemTemplate>
<%#Container.DataItem("Denominazione")%> - <%#Container.DataItem("Via")%> - <%#Container.DataItem("Cap")%> <%#Container.DataItem("Localita")%>
<hr size="1" color="#808080">
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</aspataGrid>
....................
Dim sqlservizilimitrofi = "SELECT ZONELIMIT.*, SERVIZI.* FROM ZONELIMIT INNER JOIN SERVIZI ON ZONELIMIT.Cap2 = SERVIZI.Cap WHERE(((ZONELIMIT.Cap1) = " & Session("cap") & ") And ((SERVIZI.Tipo) = " & Session("IdTipoServizio") & ")) ORDER BY SERVIZI.Denominazione"
Dim sqlConta3 As String = "Select Count(*) FROM ZONELIMIT INNER JOIN SERVIZI ON ZONELIMIT.Cap2 = SERVIZI.Cap WHERE(((ZONELIMIT.Cap1) = " & Session("cap") & ") And ((SERVIZI.Tipo) = " & Session("IdTipoServizio") & "))"

If dgservizilimitrofi.VirtualItemCount = 0 Then
Dim cmdQuanti3 As New OleDbCommand(sqlConta3, Conn)
quanti3 = cmdQuanti3.ExecuteScalar()
dgservizilimitrofi.VirtualItemCount = quanti3
Else
quanti3 = dgservizilimitrofi.VirtualItemCount
End If

Dim Cmd3 As New OleDbDataAdapter(sqlservizilimitrofi, Conn)
Cmd3.Fill(ds, (dgservizilimitrofi.CurrentPageIndex * 5), 5, "Servizilimitrofi")
dgservizilimitrofi.DataSource = ds.Tables("Servizilimitrofi").DefaultView
dgservizilimitrofi.DataBind()
......................
Sub pagservizilimitrofi(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)

dgservizilimitrofi.CurrentPageIndex = e.NewPageIndex
BindData()

End Sub
Adesso c'è solo questo datagrid nella pagina.