Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di dricky
    Registrato dal
    Sep 2005
    Messaggi
    54

    Il record corrente corrisponde all'inizio o alla fine del file

    <%
    Dim Con, rs, qposiziona, conteggio, qconta, nome, cognome, citta, stato, tabart, foto, num

    Set Con = Server.CreateObject ("ADODB.Connection")
    Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
    server.MapPath("prova.mdb")
    conteggio=0
    num=1
    qconta="Select count (inserimento.id)as num From inserimento"
    Set rs = server.CreateObject ("ADODB.Recordset")
    qposiziona="Select * From inserimento"


    rs.Open qconta, con
    conteggio= rs("num")-num
    rs.Close
    rs.Open qposiziona, con
    rs.move (conteggio)

    nome= rs("nome")
    cognome= rs("cognome")
    citta= rs("citta")
    stato= rs("stato")
    %>
    <% while (num<5)%>
    <table width="75%" border="1">
    <tr>
    <td height="59"></td>
    <td height="59"><% response.write (nome)%></td>
    <td height="59"></td>
    </tr>
    <tr>
    <td height="177"></td>
    <td height="177"><%response.write (cognome)%></td>
    <td height="177"></td>
    </tr>
    <tr>
    <td height="96"></td>
    <td height="96"></td>
    <td height="96"></td>
    </tr>
    </table>


    <% num=num+1
    rs.move(conteggio-num)
    wend
    rs.Close

    %>


    Perche mi da errore????


    Tipo di errore:
    ADODB.Recordset (0x800A0BCD)
    Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente.


    Sto impazzendo

  2. #2
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    dovresti cercare l'errore andando un passo alla volta...

    magari cominciando con mettere nome diverso ai 2 num, mi pare ci sia una variabile e un record che hanno num

    probabilmente non è quello il motivo dell'errore ma facendo chiarezza a volte si fa prima.

    e poi su che riga lo da l'errore?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  3. #3
    Utente di HTML.it L'avatar di dricky
    Registrato dal
    Sep 2005
    Messaggi
    54
    il problema è che vorrei fare un ciclo che mi visualizza i dati dall'ultimo record in su non so tipo gli untimi 5 record.......ma quando faccio un loop decrementando il recordset mi si incasina... e nn capisco il perchè...diamine

  4. #4
    Originariamente inviato da dricky
    il problema è che vorrei fare un ciclo che mi visualizza i dati dall'ultimo record in su non so tipo gli untimi 5 record.......ma quando faccio un loop decrementando il recordset mi si incasina... e nn capisco il perchè...diamine
    Con rs.movelast ti posizioni sull'ultimo record, con rs.moveprevious sali di un record alla volta (il contrario di rs.movenext).
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  5. #5
    Utente di HTML.it L'avatar di dricky
    Registrato dal
    Sep 2005
    Messaggi
    54
    se uso Muveprevious mi dice che non posso effettuare operazioni di recupero all'indietro....
    come faccio??

  6. #6
    Il primo recordset non dovrebbe servirti a niente, dato che adesso contare ti è inutile, dunque il codice risultante dovrebbe essere qualcosa come
    codice:
    <%
    Dim Con, rs, qposiziona, nome, cognome, citta, stato, tabart, foto, num
    
    Set Con = Server.CreateObject ("ADODB.Connection")
    Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
    server.MapPath("prova.mdb")
    conteggio=0
    
    Set rs = server.CreateObject ("ADODB.Recordset")
    qposiziona="Select * From inserimento"
    
    
    rs.Open qposiziona, con
    rs.movelast
    
    nome= rs("nome")
    cognome= rs("cognome")
    citta= rs("citta")
    stato= rs("stato")
    %>
    <% while not rs.bof%>
    <table width="75%" border="1">
    <tr>
    <td height="59"> </td>
    <td height="59"><% response.write (nome)%></td>
    <td height="59"> </td>
    </tr>
    <tr>
    <td height="177"> </td>
    <td height="177"><%response.write (cognome)%></td>
    <td height="177"> </td>
    </tr>
    <tr>
    <td height="96"> </td>
    <td height="96"> </td>
    <td height="96"> </td>
    </tr>
    </table>
    
    
    <% 
    rs.moveprevious
    wend
    rs.Close
    set rs = nothing
    
    con.close
    set con = nothing
    %>
    EDIT: Con questo cicli fino a tornare all'inizio del recordset, se vuoi solo gli ultimi 5 ci aggiungi un contatore numerico che va a decrescere per sapere quando fermarti.
    Sono fermamente convinto che sia possibile fare ogni cosa. Tutto sta a capire come.

  7. #7
    edited

  8. #8
    ma non si dovrebbe abilitare la possibilità di muvere il cursore avanti e indietro prima?
    Se no ti ridarà sempre l'errore che non puoi andare all'indietro...
    Quello default se non sbaglio è sempre il forward only (solo in avanti)...

  9. #9
    il problema è che vorrei fare un ciclo che mi visualizza i dati dall'ultimo record in su non so tipo gli untimi 5 record.......ma quando faccio un loop decrementando il recordset mi si incasina... e nn capisco il perchè...diamine
    Potresti fare così:
    *Questo è un esempio, modificalo per le tue esigenze

    codice:
    'Apertura connessione
    Set Cn = Server.CreateObject("ADODB.Connection")
    strCn = "driver={Microsoft Access Driver (*.mdb)}; "
    strCn = strCn & " DBQ=" & Server.MapPath("il tuo db")
    Cn.Open strCn
    
    Dim Query5, Rs
    Set Rs = Server.CreateObject("ADODB.RecordSet")
    Query5 = "SELECT TOP 5 campo1, campo2 FROM tabella ORDER BY id DESC"
    Rs.Open Query5, Cn, 3, 3
    
    For i = 0 to 4
    Response.Write Rs("campo1") & " "
    Response.Write Rs("campo2") & "
    "
    Rs.Movenext
    Next
    
    Rs.Close
    Set Rs = Nothing 
    Cn.Close
    Set Cn = Nothing

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.