[ASP] impaginazione record database

ghis

Nuovo Utente
2 Ago 2017
8
0
1
58
Buonasera,
sono nuovo del forum.
Sto creando una pagina di elenco articoli recuperandoli da database access
La pagina funziona ma in questo modo mi mette gli articoli uno sotto l'altro. io vorrei metterli uno di fianco all' altro 3 alla volta con massimo 9 per pagina
Di seguito il codice.
Grazie

HTML:
<!--#include file="adovbs.inc"-->
<% 'Estrazione pagina corrente
If Request.QueryString("page") = "" Then
    iPageCurrent = 1
Else
    iPageCurrent = CInt(Request.QueryString("page"))
End If%>
<BODY background="immagini/fondale2.jpg">   <table border="0" width="100%" id="table22" cellspacing="0" cellpadding="0">
<%
If Len(Session("aperta")) > 0 Then
Else
Session("aperta") = "ok"
Session.LCID = 1040
Dim QuantiArticoliInScontrino
Dim ScontrinoInScontrino()
Dim ScontrinoIDArticolo()
Dim ScontrinoCodiceArticolo()
Dim ScontrinoDenominazioneArticolo()
Dim ScontrinoConfezioneArticolo()
Dim ScontrinoQuantitativoArticolo()
Dim ScontrinoPrezzoArticolo()
Dim NOITEMSINSHOPPINGBASKET
Dim TOOMANYITEMSINSHOPPINGBASKET
Dim INFO_NOITEMSINSHOPPINGBASKET
Dim INFO_TOOMANYITEMSINSHOPPINGBASKET
QuantiArticoliInScontrino = 0
NOITEMSINSHOPPINGBASKET = True
TOOMANYITEMSINSHOPPINGBASKET = False
INFO_NOITEMSINSHOPPINGBASKET = "Il tuo carrello è vuoto."
INFO_TOOMANYITEMSINSHOPPINGBASKET = "Il carrello contiene troppi articoli..."
Session("QuantiArticoliInScontrino") = QuantiArticoliInScontrino
Session("ScontrinoInScontrino") = ScontrinoInScontrino
Session("ScontrinoIDArticolo") = ScontrinoIDArticolo
Session("ScontrinoCodiceArticolo") = ScontrinoCodiceArticolo
Session("ScontrinoDenominazioneArticolo") = ScontrinoDenominazioneArticolo
Session("ScontrinoQuantitativoArticolo") = ScontrinoQuantitativoArticolo
Session("ScontrinoConfezioneArticolo") = ScontrinoConfezioneArticolo
Session("ScontrinoPrezzoArticolo") = ScontrinoPrezzoArticolo
Session("NOITEMSINSHOPPINGBASKET") = NOITEMSINSHOPPINGBASKET
Session("TOOMANYITEMSINSHOPPINGBASKET") = TOOMANYITEMSINSHOPPINGBASKET
Session("INFO_NOITEMSINSHOPPINGBASKET") = INFO_NOITEMSINSHOPPINGBASKET
Session("INFO_TOOMANYITEMSINSHOPPINGBASKET") = INFO_TOOMANYITEMSINSHOPPINGBASKET
Dim IDUtente
Dim SchedaClienteNome
Dim SchedaClienteCognome
Dim SchedaClienteIndirizzo
Dim SchedaClienteCodicePostale
Dim SchedaClienteComune
Dim SchedaClienteProvincia
Dim SchedaClienteTelefono
Dim SchedaClienteFax
Dim SchedaClienteEmail
Dim EMPTYFIELDS
Dim INFO_EMPTYFIELDS
EMPTYFIELDS = False
INFO_EDEMPTYFIELDS = "Compila tutte le informazioni richieste!"
Session("IDUtente") = IDUtente
Session("SchedaClienteNome") = SchedaClienteNome
Session("SchedaClienteCognome") = SchedaClienteCognome
Session("SchedaClienteIndirizzo") = SchedaClienteIndirizzo
Session("SchedaClienteCodicePostale") = SchedaClienteCodicePostale
Session("SchedaClienteComune") = SchedaClienteComune
Session("SchedaClienteProvincia") = SchedaClienteProvincia
Session("SchedaClienteTelefono") = SchedaClienteTelefono
Session("SchedaClienteFax") = SchedaClienteFax
Session("SchedaClienteEmail") = SchedaClienteEmail
Session("EMPTYFIELDS") = EMPTYFIELDS
Session("INFO_EMPTYFIELDS") = INFO_EMPTYFIELDS
Dim IDOrdine
Dim OrdineData
Dim OrdineImporto
Dim OrdineSpeseDiSpedizione
Session("IDOrdine") = IDOrdine
Session("OrdineData") = OrdineData
Session("OrdineImporto") = OrdineImporto
Session("OrdineSpeseDiSpedizione") = OrdineSpeseDiSpedizione
Session("AcquistoOK") = ""
End If
%>
<%if len(Session("aperta")) > 0 then
idlineadicatalogo = Request.QueryString("idlineadicatalogo")
Session.LCID=1040
Set DatabaseWebStore = Server.CreateObject("ADODB.Connection")
DBString =""
DBString = DBString + "Driver={Microsoft Access Driver (*.mdb)};"
DBString = DBString + "Dbq=" & Server.MapPath(".") & "/mdb-database/webstore.mdb;"
DBString = DBString + "Uid=Admin;"
DBString = DBString + "Pwd=;"
DatabaseWebStore.Open DBString
If Len(idlineadicatalogo) = 0 Then%>
<%Else%>
<%
Dim sqlquery
sqlquery = "select  *  FROM [Catalogo, Articoli]  WHERE IDLinea = " & idlineadicatalogo & " AND InVendita=true"
Dim RecordsetArticoli
Set RecordsetArticoli = DatabaseWebStore.Execute(sqlquery)
%>
    <%iPageSize = 9 'NUMERO RECORD PER PAGINA               
                Set RecordsetArticoli = Server.CreateObject("ADODB.Recordset")            
                RecordsetArticoli.PageSize = iPageSize
                RecordsetArticoli.CacheSize = iPageSize
                RecordsetArticoli.Open sqlquery, DatabaseWebStore, adOpenStatic, adLockReadOnly, adCmdText
                 recCount = RecordsetArticoli.RecordCount
                iPageCount = RecordsetArticoli.PageCount
                If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
                If iPageCurrent < 1 Then iPageCurrent = 1                       
                If iPageCount = 0 Then
                Else
                    RecordsetArticoli.AbsolutePage = iPageCurrent
                    iRecordsShown = 0           
                End If
                %>
<%If RecordsetArticoli.EOF Then%>
<%Else%>
                                           <td width="541" valign="top">
                                <table border="0"  width="541" id="table33" cellpadding="0" cellspacing="0">
 
  <tr>
        <TD width="26" background="icons/cellanew_04.gif">
            </TD>
        <TD bgcolor="#f5f8fa">
            <table border="0" width="100%" id="table35" cellspacing="0" cellpadding="0">
                                    <tr>
    <td height="120">

 
<TABLE BORDER=1 bordercolor="#F5F8FA" CELLPADDING=0 cellspacing="0" width="100%" id="table36">
<%Do While iRecordsShown < iPageSize And Not RecordsetArticoli.EOF
            ID = RecordsetArticoli("ID")
                    Codice = RecordsetArticoli("Codice")
                    Denominazione = RecordsetArticoli("Denominazione")
                    Informazioni = RecordsetArticoli("Informazioni")
                    Informazioni1= RecordsetArticoli("Informazioni1")
                    Informazioni3= RecordsetArticoli("Informazioni3")
                    InformazioniComplete = RecordsetArticoli("InformazioniComplete")
                    InformazioniEstese = RecordsetArticoli("InformazioniEstese")
                    Confezione = RecordsetArticoli("Confezione")
                    Prezzo = RecordsetArticoli("Prezzo")
                    RiferimentoDiIcona = RecordsetArticoli("RiferimentoDiIcona")
                    RiferimentoDiFoto = RecordsetArticoli("RiferimentoDiFoto")
%>
<TR VALIGN="top">
<TD width="33%" bordercolor="#98C4DD" height="45">
<%If RiferimentoDiFoto <> "" Then%>
<a href="scheda_articolo.asp?idarticolo=<%=ID%>"><IMG SRC="immagini/<%=RiferimentoDiFoto%>" border="0" height="350" wigth="250" alt="<%=Denominazione%>"></a></td>
<TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
<TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
</tr>
<TR VALIGN="top">
  <TD width="33%" height="45" bordercolor="#98C4DD"><span class="title" style="margin-left: 5"><%=Denominazione%></span><p style="margin-left: 5" class="title">&nbsp;</p>
<a href="scheda_articolo.asp?idarticolo=<%=ID%>"><p class="text"><% =Left(InformazioniEstese, 200)%>...</a><br><br>
Prezzo €&nbsp;<b><%=Prezzo%></b></td>
  <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
  <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
</tr>
<tr>
<td align="left" colspan="4">
<%else%>
<%End If%></TD>
</TR>
<%iRecordsShown = iRecordsShown + 1
RecordsetArticoli.MoveNext
Loop
%>
</TABLE>
</div>
<%End If%>
<%End If%>  

<% If iPageCount <> 1 Then %>
    <table align="center" id="table38">
    <tr>
    <td width="100%" align="center" valign="middle">
      <p class="title"><font face="verdana" size="2" color="#000000">
        
    <% If iPageCurrent > 1 Then %>
          <a href="elenco_articoli.asp?idlineadicatalogo=<%=idlineadicatalogo%>&page=<%=iPageCurrent-1%>">
        <IMG SRC="icons/art_pre.gif" alt="Articolo precedente" BORDER=0 width="100" height="23"></a>&nbsp; 
    <%end if %>   
    <% If iPageCount > 2 then
        if iPageCurrent-9 < 1 then da_pag = 1 else da_pag = iPageCurrent-9
        if iPageCurrent+9 > iPageCount then fino_a_pag = iPageCount else fino_a_pag = iPageCurrent+9
    Else
        da_pag = 1
        fino_a_pag = iPageCount
    end if %>
    <%for i = da_pag to fino_a_pag %>
        <%if i = iPageCurrent then %>  </font>
      [<%=i%>]<font face="verdana" size="2" color="#000000">
        
        <% else %>   
             <A href="elenco_articoli.asp?idlineadicatalogo=<%=idlineadicatalogo%>&page=<%=i%>"><%=i%></A>
        <%end if %>   
    <% next %>       
    <%if iPageCurrent > 0 and iPageCurrent < iPageCount then %>
        &nbsp;<a href="elenco_articoli.asp?idlineadicatalogo=<%=idlineadicatalogo%>&page=<%=iPageCurrent+1%>"><IMG SRC="icons/art_suc.gif" alt="Articolo successivo" BORDER=0 width="100" height="23"></a> 
    <%end if %>  
    </font>
      </p>
    </td>
    </tr>
    <tr>
    <td align="center" class="title">
    <p>
    Pagina <%=iPageCurrent%> di
    <font color="#00005a"><b><%=iPageCount%></b></font>
    </p>
    </td>
    </tr>
    </table>
<% end if %>
<%
RecordsetArticoli.Close
Set RecordsetArticoli = Nothing
DatabaseWebStore.Close
Set DatabaseWebStore = Nothing
else%>
<%end if
%>                             </tr>
                                    </table>        
        </TD>  </tr>
</table>                        
                            </td>
                            </tr>                            
                       </table>       <tr>
        <td></td>
    </tr>
</table>
</div>
</BODY>
</html>
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
la paginazione viene di solito gestita dalla query,
in ambito Microsoft posso darti la query che uso per ms sql, vedo che tu usi "access",
non so quanto sia compatibile, ma puoi sempre provarla,
PHP:
SELECT * from (
  SELECT
     Row_Number() over ( ORDER BY col_due, col_uno ) as RowIndex
    ,col_tre
    ,col_quattro
    ,col_uno
    ,col_due
  FROM tabella
) as pager
WHERE pager.RowIndex > "ultima colonna visualizzata" and pager.RowIndex <= "ultima colonna da visualizzare"
ultima colonna visualizzata all'inizio è 0 poi assume il valore ricavato dalla pagina precedente
ultima colonna da visualizzare viene incrementata con il numero di record x pagina

in precedenza, puoi contare i record e crearti i riferimenti (link) per "paginare" velocemente

se non dovesse esserci compatibilità, cerca funzioni simili per "access"
oppure se proprio ci fosse incompatibilità e impossibilità, puoi gestire la paginazione da script con una tecnica simile (contando i records)

modificare lo script per gestire le pagine è compito tuo ...
 
Ultima modifica:

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ciao, mi confermi che il codice che si preoccupa della visualizzazione dei record è il seguente?
Codice:
<table>
<tr>

<%

   iPageSize = 9 'NUMERO RECORD PER PAGINA
              
   Set RecordsetArticoli = Server.CreateObject("ADODB.Recordset")        
       RecordsetArticoli.PageSize = iPageSize
       RecordsetArticoli.CacheSize = iPageSize
       RecordsetArticoli.Open sqlquery, DatabaseWebStore, adOpenStatic, adLockReadOnly, adCmdText
       recCount = RecordsetArticoli.RecordCount
       iPageCount = RecordsetArticoli.PageCount
    
       If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
    
       If iPageCurrent < 1 Then iPageCurrent = 1
                      
       If iPageCount = 0 Then
           Else
           RecordsetArticoli.AbsolutePage = iPageCurrent
           iRecordsShown = 0        
       End If
                %>
<%
       If RecordsetArticoli.EOF Then
    
       Else
%>
<td width="541" valign="top">
   <table border="0"  width="541" id="table33" cellpadding="0" cellspacing="0">
   <tr>
   <TD width="26" background="icons/cellanew_04.gif"></TD>
   <TD bgcolor="#f5f8fa">

        <table border="0" width="100%" id="table35" cellspacing="0" cellpadding="0">
        <tr>
        <td height="120">
            <TABLE BORDER=1 bordercolor="#F5F8FA" CELLPADDING=0 cellspacing="0" width="100%" id="table36">
<%
       Do While iRecordsShown < iPageSize And Not RecordsetArticoli.EOF
            ID = RecordsetArticoli("ID")
                    Codice = RecordsetArticoli("Codice")
                    Denominazione = RecordsetArticoli("Denominazione")
                    Informazioni = RecordsetArticoli("Informazioni")
                    Informazioni1= RecordsetArticoli("Informazioni1")
                    Informazioni3= RecordsetArticoli("Informazioni3")
                    InformazioniComplete = RecordsetArticoli("InformazioniComplete")
                    InformazioniEstese = RecordsetArticoli("InformazioniEstese")
                    Confezione = RecordsetArticoli("Confezione")
                    Prezzo = RecordsetArticoli("Prezzo")
                    RiferimentoDiIcona = RecordsetArticoli("RiferimentoDiIcona")
                    RiferimentoDiFoto = RecordsetArticoli("RiferimentoDiFoto")
%>
           <TR VALIGN="top">
               <TD width="33%" bordercolor="#98C4DD" height="45"><%
            
               If RiferimentoDiFoto <> "" Then
            
               %><a href="scheda_articolo.asp?idarticolo=<%=ID%>"><IMG SRC="immagini/<%=RiferimentoDiFoto%>" border="0" height="350" wigth="250" alt="<%=Denominazione%>"></a></td>
                <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
                <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
           </tr>
           <TR VALIGN="top">
             <TD width="33%" height="45" bordercolor="#98C4DD"><span class="title" style="margin-left: 5"><%=Denominazione%></span><p style="margin-left: 5" class="title">&nbsp;</p><a href="scheda_articolo.asp?idarticolo=<%=ID%>"><p class="text"><% =Left(InformazioniEstese, 200)%>...</p></a><br><br>
Prezzo €&nbsp;<b><%=Prezzo%></b></td>
              <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
              <TD width="33%" bordercolor="#98C4DD">&nbsp;</td>
           </tr>
           <tr>
               <td align="left" colspan="4"><%else%><%End If%></TD>
           </TR>
       <%
        iRecordsShown = iRecordsShown + 1
        RecordsetArticoli.MoveNext
        Loop
        %>
       </TABLE>
</td>
</tr>
</table>
</TD>
</tr>
</table>
</td>
</tr>
</table>
<%End If%>
E' abbastanza confuso.
Comunque è risolvibile riformattando la tabella ed inserendo una variabile che al valore 3 la stessa scrive '</tr><tr>' in modo da mandare a capo i record dopo il terzo.

Esempio:
Codice:
' prima del ciclo
Conta = 0

'nel ciclo
Conta = Conta + 1
If Conta = 3 Then
   Response.Write = "</tr><tr>"
   Conta = 0
End If
 
Ultima modifica:

ghis

Nuovo Utente
2 Ago 2017
8
0
1
58
Grazie per le risposte
ho inserito questo codice e funziona ma mi servirebbe che il campo 1 caricasse un immagine
In più se i record sono più di 9 quando vado nella seconda pagina mi riporta gli stessi della pagina precedente

Ecco il codice
HTML:
<%

Dim strConnect
    strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/webstore.mdb")

'Imposta Connessione e Recordset
    Set objUsersConn = Server.CreateObject("ADODB.Connection")
    Set objUsersRs = Server.CreateObject("ADODB.Recordset")
        objUsersConn.open strConnect
        strUsersSql = "select  *  FROM [Catalogo, Articoli]  WHERE IDLinea = " & idlineadicatalogo & " AND InVendita=true"
        objUsersRs.Open strUsersSql, objUsersConn, 3, 3
    ' -----------------------------------------
    ' imposto il numero di record da estrapolare
        objUsersRs.pagesize = 9
    ' imposto il numero di colonne
        colonne = 3
    ' -----------------------------------------
        objUsersRs.absolutepage = 1
    ' imposto a zero il contatore   
        Conta = 0

' BARRA TITOLO
%>
<table align="center"  cellpadding="0" cellspacing="1" width="550">
    
    <tr>
    <%
    
    do while not objUsersRs.eof
      If rowcount >= objUsersRs.pagesize then exit do
    
        rowcount = rowcount + 1
        
        campo1 = (objUsersRs("RiferimentodiFoto"))
        campo2 = (objUsersRs("Codice"))
        campo3 = (objUsersRs("Prezzo"))
    
    %>
        <td><a href="scheda_articolo.asp?idarticolo=212"  class="mask"><img class="img-responsive zoom-img" src="images/<%=campo1%>/>alt="" /></a><br /><%=campo2%><br %><%=campo3%></td>
    <%
    
    'Incrementiamo il Contatore
        Conta = Conta + 1
    'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
    if  Conta = colonne then
        conta = 0
    
    response.write "<tr></tr>"
    
    end if
    'Scorriamo i dati della tabella
    objUsersRs.MoveNext
    loop
    
    
    %>
    </tr>
</table>
<%


        objUsersRs.Close()
    Set objUsersRs = Nothing

' fine   
%>
questo invece è il codice per la pagina successiva
HTML:
<%iPageSize = 3 'NUMERO RECORD PER PAGINA
                
                
                Set RecordsetArticoli = Server.CreateObject("ADODB.Recordset")
            
                RecordsetArticoli.PageSize = iPageSize
                RecordsetArticoli.CacheSize = iPageSize
                RecordsetArticoli.Open sqlquery, DatabaseWebStore, adOpenStatic, adLockReadOnly, adCmdText
                
                recCount = RecordsetArticoli.RecordCount
                iPageCount = RecordsetArticoli.PageCount
                

                If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
                If iPageCurrent < 1 Then iPageCurrent = 1   
                    
                If iPageCount = 0 Then
                Else
                    RecordsetArticoli.AbsolutePage = iPageCurrent
                    iRecordsShown = 0
                    
                    
                    
                    
                End If
                %>

<%If RecordsetArticoli.EOF Then%>
<%Else%>

eco cosa mi ritorna
screen.JPG
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Prova questo codice con barra di navigazione per poter navigare senza problemi tra i record:
Codice:
<%

Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select

           adOpenKeyset = 1
      
' -----------------------------------------
'Numero di record da visualizzare su ogni pagina
       v_record_pagina = 9
' imposto il numero di colonne
        colonne = 3
' imposto a zero il contatore  
        Conta = 0
' -----------------------------------------

   Set conn = Server.CreateObject("ADODB.Connection")
   Set rst = Server.CreateObject("ADODB.Recordset")
       conn.open strConnect
       criterio =  "SELECT *  FROM [Catalogo, Articoli] WHERE IDLinea = "&idlineadicatalogo&" AND InVendita = true ;"
       rst.Open criterio, conn, adOpenKeyset

' Se la query ritorna dati, visualizzo la pagina
   If Not (rst.bof and rst.eof) then
       rst.PageSize = cint(v_record_pagina)
       rst.AbsolutePage = Cdbl(v_pagina_corrente)

%>
<table align="center"  cellpadding="0" cellspacing="1" width="550">
    <tr>
<%

'Ciclo sui record della pagina
   For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
   If rst.Eof then exit for

' valorizzo le variabili
        campo1 = (rst("RiferimentodiFoto"))
        campo2 = (rst("Codice"))
        campo3 = (rst("Prezzo"))
  
%><td><a href="scheda_articolo.asp?idarticolo=212" class="mask"><img class="img-responsive zoom-img" src="images/<%=campo1%>/" alt="" /></a><br /><%=campo2%><br %><%=campo3%></td>
<%
  
    'Incrementiamo il Contatore
        Conta = Conta + 1
    'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
    if  Conta = colonne then
        conta = 0
       response.write "</tr><tr>"
    end if

  %>
<%

       rst.MoveNext
    Next


%>
    </tr>
</table>


<p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
<p align="center"><%
 'Qui semplicemente creo la barra di navigazione.
    If rst.EOF and rst.BOF then
  
    %>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
    <%
  
    Else
            If Cdbl(v_pagina_corrente) > 1 Then
          
            %>
            <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
            <a href='default.asp?pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
            <%
          
            Else
          
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
            <%
          
            End If
  
            If Cdbl(v_pagina_corrente) < rst.PageCount Then
          
            %>
            <a href='default.asp?pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
            <a href='default.asp?pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
            <%
          
            Else
          
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
            <%
          
            End If  
  
    End If
  
    %></p>
<%

   Else 'La query non ritorna dati

%>
  <p>Non esistono dati.</p>
<%

   End If

       rst.Close
       conn.Close
   set rst = nothing
   set conn = nothing

%>
Non lo posso provare per ovvi motivi ma se sei bravo dovresti farlo funzionare.
Modifica nella barra di navigazione il nome della pagina da default.asp a quella che vuoi te.
 

ghis

Nuovo Utente
2 Ago 2017
8
0
1
58
Grazie non ho molte conoscenze in Asp come si può capire bene.
L ho provato mi da questo errore su questo codice
Select Case Request.QueryString("dir") Case "" v_pagina_corrente = 1 Case "next" v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1 Case "prev" v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1 End Select adOpenKeyset = 1

HTML:
Microsoft VBScript runtime error '800a01f5'

Illegal assignment: 'adOpenKeyset'

/elenco_articoli.asp, line 330
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
purtroppo non posso testare il codice all'interno della tua pagina, prova a crearne una tutta sua, non ha bisogno di nulla se non la sola connessione al DB.
Probabilmente la vabiabile va in conflitto con qualche altra...
 

ghis

Nuovo Utente
2 Ago 2017
8
0
1
58
Ho creato la pagina solo con il codice che mi hai indicato e fatto la connessione al database
L' errore che mi ritorna è questo
Codice:
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

ODBC driver does not support the requested properties.

/prova.asp, line 28
ecco i codici delle due pagine

HTML:
<!--#include file="databaseopen.asp"-->
<%

Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select

           adOpenKeyset = 1
      
' -----------------------------------------
'Numero di record da visualizzare su ogni pagina
       v_record_pagina = 9
' imposto il numero di colonne
        colonne = 3
' imposto a zero il contatore 
        Conta = 0
' -----------------------------------------

   Set conn = Server.CreateObject("ADODB.Connection")
   Set rst = Server.CreateObject("ADODB.Recordset")
       conn.open strConnect
       criterio =  "SELECT *  FROM [Catalogo, Articoli] WHERE IDLinea = "&idlineadicatalogo&" AND InVendita = true ;"
       rst.Open criterio, conn, adOpenKeyset

' Se la query ritorna dati, visualizzo la pagina
   If Not (rst.bof and rst.eof) then
       rst.PageSize = cint(v_record_pagina)
       rst.AbsolutePage = Cdbl(v_pagina_corrente)

%>
<table align="center"  cellpadding="0" cellspacing="1" width="550">
    <tr>
<%

'Ciclo sui record della pagina
   For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
   If rst.Eof then exit for

' valorizzo le variabili
        campo1 = (rst("RiferimentodiFoto"))
        campo2 = (rst("Codice"))
        campo3 = (rst("Prezzo"))
 
%><td><a href="scheda_articolo.asp?idarticolo=212" class="mask"><img class="img-responsive zoom-img" src="images/<%=campo1%>/" alt="" /></a><br /><%=campo2%><br %><%=campo3%></td>
<%
 
    'Incrementiamo il Contatore
        Conta = Conta + 1
    'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
    if  Conta = colonne then
        conta = 0
       response.write "</tr><tr>"
    end if

  %>
<%

       rst.MoveNext
    Next


%>
    </tr>
</table>


<p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
<p align="center"><%
 'Qui semplicemente creo la barra di navigazione.
    If rst.EOF and rst.BOF then
 
    %>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
    <%
 
    Else
            If Cdbl(v_pagina_corrente) > 1 Then
          
            %>
            <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
            <a href='default.asp?pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
            <%
          
            Else
          
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
            <%
          
            End If
 
            If Cdbl(v_pagina_corrente) < rst.PageCount Then
          
            %>
            <a href='default.asp?pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
            <a href='default.asp?pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
            <%
          
            Else
          
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
            <%
          
            End If 
 
    End If
 
    %></p>
<%

   Else 'La query non ritorna dati

%>
  <p>Non esistono dati.</p>
<%

   End If

       rst.Close
       conn.Close
   set rst = nothing
   set conn = nothing

%>

la connessione al database è questa
HTML:
<%

Dim strConnect
    strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/webstore.mdb")%>
 

ghis

Nuovo Utente
2 Ago 2017
8
0
1
58
sono riuscito con questo codice ad impaginare a tre colonne

HTML:
<%@LANGUAGE = VBScript%>
<%
   ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim sc, cn, rs, quanti, pag, contatore

    ' DEFINISCO LA STRINGA DI CONNESSIONE
    sc = ""
    sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
    sc = sc & Server.MapPath("mdb-database/webstore7.mdb")

    ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")

    ' APRO LA CONNESSIONE COL DATABASE
    cn.Open sc

    ' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA
    quanti = 5

    ' RECUPERO IL NUMERO DI PAGINA CORRENTE
    ' E CONTROLLO CHE NON SIA INFERIORE A 1
    pag = Request.QueryString("pag")
    If IsNumeric(pag) = False Or pag < 1 Then pag = 1

    ' IMPOSTO UN CONTATORE
    contatore = 0
%>
<html>
<head>
<title>Elenco articoli</title>
</head>
<body>

<table border="0"><tr>
<%
   
    ' APRO IL RECORDSET
    rs.Open "SELECT RiferimentoDiIcona, denominazione, prezzo FROM [Catalogo, articoli] ORDER BY RiferimentoDiIcona, denominazione, prezzo ASC", cn, 1
    rs.PageSize = quanti
    rs.AbsolutePage = pag
    ' ESEGUO IL CICLO
   While rs.EOF = False And contatore < quanti
        ' IMPOSTO LA PAGINAZIONE A 3 COLONNE ED N RIGHE
        ' IN FUNZIONE DEL NUMERO DI RECORD PRESENTI NEL DB

        If contatore = 3 Then
            contatore = 0
            Response.Write "</tr><tr>"
        End If
%>
    <td><IMG SRC="immagini/<%=rs("RiferimentoDiIcona")%> height="250" width="150" border="0"><br><%=rs("denominazione")%><br><%=rs("prezzo")%></td>
<%
        rs.MoveNext
        ' INCREMENTO IL VALORE DEL CONTATORE
        contatore = contatore + 1
    Wend
   
%>
</tr></table>
<p align="center">
<%If pag > 1 Then%>
    <a href="elenco.asp?pag=<%=pag-1%>">Indietro</a>
<%End If%>
<%
    Dim x
    x = 1
    For x = 1 To rs.PageCount
        If CInt(pag) <> x Then
%>
            [<a href="elenco.asp?pag=<%=x%>"><%=x%></a>]
<%
        Else
%>
            [<a href="elenco.asp?pag=<%=x%>"><b><%=x%></b></a>]
<%
        End If
    Next
%>
<%If rs.EOF = False Then%>
    <a href="elenco.asp?pag=<%=pag+1%>">Avanti</a>
<%End If%>
</p>

</body>
</html>
<%
    ' UN PO DI PULIZIA...
rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
%>

funziona ma non mi imposta i record a 9 per pagina e non mi visualizza l'immagine
avete dei suggerimenti.
Grazie
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Nell'esempio seguente vedrai come connettersi ad un database Microsoft Access mediante il driver OLEDB 4.0.
Esistono principalmente 2 driver di connessione ma attualmente è consigliato utilizzare OLEDB in quanto più performante e più stabile.

Codice:
<%
'dichiaro le variabili
    Dim strPath, strConnect

'creo il percorso usando Server.MapPath
    strPath = Server.MapPath("/mdb-database/webstore.mdb")
' connessione OLEDB
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&strPath

' vecchio ODBC non attivo
' strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & strPath
%>
...prova così.

Differenza tecniche tra le due connessioni: http://www.aspitalia.com/articoli/db/ole-db.aspx
 

ghis

Nuovo Utente
2 Ago 2017
8
0
1
58
Ok funziona. Grazie
Non va la barra di navigazione. Rimane sempre sulla stessa pagina

HTML:
<
<%

Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select

           adOpenKeyset = 1
     
' -----------------------------------------
'Numero di record da visualizzare su ogni pagina
       v_record_pagina = 9
' imposto il numero di colonne
        colonne = 3
' imposto a zero il contatore
        Conta = 0
' -----------------------------------------

   Set conn = Server.CreateObject("ADODB.Connection")
   Set rst = Server.CreateObject("ADODB.Recordset")
       conn.open strConnect
       criterio =  "SELECT riferimentodifoto, codice, prezzo FROM [Catalogo, Articoli] ORDER BY riferimentodifoto, codice, prezzo ASC"
       rst.Open criterio, conn, adOpenKeyset

' Se la query ritorna dati, visualizzo la pagina
   If Not (rst.bof and rst.eof) then
       rst.PageSize = cint(v_record_pagina)
       rst.AbsolutePage = Cdbl(v_pagina_corrente)

%>
<table align="center"  cellpadding="0" cellspacing="1" width="550">
    <tr>
<%

'Ciclo sui record della pagina
   For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
   If rst.Eof then exit for

' valorizzo le variabili
        campo1 = (rst("riferimentodifoto"))
        campo2 = (rst("Codice"))
        campo3 = (rst("Prezzo"))
%><td><IMG SRC="immagini/<%=campo1%>" "height="250" width="150" border="0"><br /><%=campo2%><br /><%=campo3%></td>
<%
    'Incrementiamo il Contatore
        Conta = Conta + 1
    'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
    if  Conta = colonne then
        conta = 0
       response.write "</tr><tr>"
    end if

  %>
<%

       rst.MoveNext
    Next


%>
    </tr>
</table>


<p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
<p align="center"><%
 'Qui semplicemente creo la barra di navigazione.
    If rst.EOF and rst.BOF then
 
    %>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
    <%
 
    Else
            If Cdbl(v_pagina_corrente) > 1 Then
         
            %>
            <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
            <a href='default.asp?pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
            <%
         
            Else
         
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
            <%
         
            End If
 
            If Cdbl(v_pagina_corrente) < rst.PageCount Then
         
            %>
            <a href='default.asp?pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
            <a href='default.asp?pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
            <%
         
            Else
         
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
            <%
         
            End If  
 
    End If
 
    %></p>
<%

   Else 'La query non ritorna dati

%>
  <p>Non esistono dati.</p>
<%

   End If

       rst.Close
       conn.Close
   set rst = nothing
   set conn = nothing

%>
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Ecco il codice con la barra di navigazione corretta, mancava la variabile "dir":
Codice:
<%

Select Case Request.QueryString("dir")
  Case ""
    v_pagina_corrente = 1
  Case "next"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) + 1
  Case "prev"
    v_pagina_corrente= cdbl(Request.QueryString("pag")) - 1
End Select

           adOpenKeyset = 1
     
' -----------------------------------------
'Numero di record da visualizzare su ogni pagina
       v_record_pagina = 9
' imposto il numero di colonne
        colonne = 3
' imposto a zero il contatore
        Conta = 0
' -----------------------------------------

   Set conn = Server.CreateObject("ADODB.Connection")
   Set rst = Server.CreateObject("ADODB.Recordset")
       conn.open strConnect
       criterio =  "SELECT riferimentodifoto, codice, prezzo FROM [Catalogo, Articoli] ORDER BY riferimentodifoto, codice, prezzo ASC"
       rst.Open criterio, conn, adOpenKeyset

' Se la query ritorna dati, visualizzo la pagina
   If Not (rst.bof and rst.eof) then
       rst.PageSize = cint(v_record_pagina)
       rst.AbsolutePage = Cdbl(v_pagina_corrente)

%>
<table align="center"  cellpadding="0" cellspacing="1" width="550">
    <tr>
<%

'Ciclo sui record della pagina
   For x = 1 To rst.PageSize

'Esco alla fine della pagina, se è l'ultima e contiene meno record delle altre
   If rst.Eof then exit for

' valorizzo le variabili
        campo1 = (rst("riferimentodifoto"))
        campo2 = (rst("Codice"))
        campo3 = (rst("Prezzo"))
%><td><IMG SRC="immagini/<%=campo1%>" height="250" width="150" border="0" /><br /><%=campo2%><br /><%=campo3%></td>
<%
    'Incrementiamo il Contatore
        Conta = Conta + 1
    'Impostiamo il numero di colonne che si vogliono creare (nel nostro caso 2)
    if  Conta = colonne then
        conta = 0
       response.write "</tr><tr>"
    end if

  %>
<%

       rst.MoveNext
    Next


%>
    </tr>
</table>


<p align="center"><font size="2" face="Verdana">Pagina <%=v_pagina_corrente%> di <%=rst.PageCount%></font></p>
<p align="center"><%
 'Qui semplicemente creo la barra di navigazione.
    If rst.EOF and rst.BOF then
    %>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
    <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
    <%
    Else
            If Cdbl(v_pagina_corrente) > 1 Then
         
            %>
            <a href="default.asp?pag="><font size='2' face='Verdana'><strong>Inizio</strong></font></a>
            <a href='default.asp?dir=prev&pag=<%=v_pagina_corrente%>'><font size='2' face='Verdana'><strong>Indietro</strong></font></a>
            <%
         
            Else
         
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Inizio</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Indietro</strong></font>
            <%
         
            End If
            If Cdbl(v_pagina_corrente) < rst.PageCount Then
         
            %>
            <a href='default.asp?dir=next&pag=<%= v_pagina_corrente %>'><font size='2' face='Verdana'><strong>Avanti</strong></font></a>
            <a href='default.asp?dir=next&pag=<%= rst.pagecount - 1 %>'><font size='2' face='Verdana'><strong>Fine</strong></font></a>
            <%
         
            Else
         
            %>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Avanti</strong></font>
            <font color='#C0C0C0' size='2' face='Verdana'><strong>Fine</strong></font>
            <%
         
            End If  
    End If
    %></p>
<%

   Else 'La query non ritorna dati

%>
  <p>Non esistono dati.</p>
<%

   End If

       rst.Close
       conn.Close
   set rst = nothing
   set conn = nothing

%>
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Impaginazione ASP Classic ASP 1
M impaginazione ASP Classic ASP 16
I asp | includere un file, indirizzo depositato in un db Classic ASP 0
Paolo69 Risolto reCAPTCHA v2 per ASP Classic ASP 0
P lanciare script asp (o php) da jquery Javascript 1
L Modifica file upload in ASP Classic ASP 2
felino ASP.net MVC: Exception e chiamata AJAX ASP.NET 1
W Rinominare Documenti Con Form Asp Classic ASP 9
G Registrazione utente su pagina asp Classic ASP 14
R Sviluppatore ASP.NET Offerte e Richieste di Lavoro e/o Collaborazione 0
seranto [ASP] Controllare il testo inserito in Textarea Classic ASP 6
F classic asp popolare combo box javascript Presentati al Forum 1
P Passagio dati complessi tra una ASP.NET webapi e Angular ASP.NET 1
A [ASP.Net] Gestire il profilo ADMIN in un progetto ASP NET e pattern MVC ASP.NET 0
P [ASP.Net] Problema ERR_INCOMPLETE_CHUNKED_ENCODING 206 (Partial Content) con Font ASP.NET 4
A [ASP] Confronto tra dati Form e DB Classic ASP 2
A Mantenere la validazione reindirizzandoci su un secondo sito WEb. (ASP.NET) ASP.NET 0
StephenSoftware [ASP.Net] Pagina Master ed eventi... ASP.NET 0
K [ASP] Visualizzare nome del file selezionato Classic ASP 3
S [ASP] rubrica telefonica Classic ASP 2
M MySQL e classic ASP Classic ASP 5
D [ASP] Eliminare gli zeri che nn servono Classic ASP 1
G [ASP] Ciclare i valori di 2 array Classic ASP 2
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
S elimina record sql asp classic Classic ASP 5
D [ASP] Autocomplete cerca su 2 campi del db Classic ASP 1
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
NuviaSoftware [Retribuito] [Cerco] Programmatore ambienti ASP.NET,. Net Azure web apps, Javascript Offerte e Richieste di Lavoro e/o Collaborazione 0
D [ASP] scaricare articoli Classic ASP 8
D [ASP] Mysql insert e update Classic ASP 2
V [ASP.Net] avento keydown crh13 enter ASP.NET 0
A [ASP.Net] Dropdownlist ASP.NET 0
S [ASP.Net] [ASP] Upload Image ASP.NET 6
V Ricevere messaggi email certificata con CDO o altro oggetto in ASP Classic ASP 0
A [ASP] query wish list Classic ASP 3
riminese77 [ASP.Net] Popup Bootstrap in datagrid ASP.NET 0
D [ASP] si può fare? Classic ASP 29
D [ASP] ordinamento query Classic ASP 2
M [ASP] Upload file da form controllo Classic ASP 5
S SQL, ACCESS & ASP CLASSIC - QUERY Classic ASP 3
G [ASP] Incrementare un valore on the fly su selezione select Classic ASP 3
K [ASP.Net] Realizzazione menu a tendina dipendenti ASP.NET 1
Tommy03 Aprire un file .asp nel browser Classic ASP 5
E [ASP.Net] Access 2016 ? Non si usa Microsoft Jet 4.0 ma Engine 2016 o 2010. Non va ! ASP.NET 2
D csrf : Cross Site Request Forgery in classic asp Classic ASP 0
D [ASP] Motore di ricerca interno su 2 tabelle Classic ASP 3
M [ASP.Net] [ASP] geoblocking e web.config ASP.NET 3
N Cerco sviluppatore ASP per aggiornamento sito e-commerce esistente Offerte e Richieste di Lavoro e/o Collaborazione 0
D prima prova con ASP... dove sbaglio? Classic ASP 13

Discussioni simili