Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6]scorrimento recordset

    Database Access. Non capisco perché, pur ottenendo un recordset contenente 5 record, se faccio click sul cmdAvanti più volte ottengo lo scorrimento in avanti di un solo record: in pratica vedo il record corrente ed il successivo, dopodiché basta.

    codice:
    Private Sub cmdAvanti_Click()
        Call connettiArchivio
        Rs.Open strSQLArchivio
          'dopo aver creato il recorset si porta sul suo ultimo
          'record e in questo modo la proprietà RecordCount
          'contiene il numero esatto dei record selezionati
        Rs.MoveLast
        rsTotale = Rs.RecordCount
          'torna al primo record
        Rs.MoveFirst
        
        Rs.MoveNext
          'Trova il numero di record corrente
        intRecordCorrente = Rs.AbsolutePosition
          'Aggiorna il contenuto della etichetta
          'con il numero del nuovo record corrente
        lblContaRecord.Caption = "Pagina" & intRecordCorrente & " di " & rsTotale & ""
        CaricaImmagine (App.Path & "\544CANON\" & Rs!AC_pagina_file)
        If Rs.EOF Then
        Rs.MoveLast
        End If
      
        Rs.Close
        Cn.Close
    End Sub
    Ho fatto già una ricerca nel forum ma non sono arrivata a capo di niente. Grazie!

  2. #2

    Re: [VB6]scorrimento recordset

    perchè ogni volta che fai avanti prima di fare il "MoveNext" torni al primo record ("Rs.MoveFirst")
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  3. #3
    Perchè sbagli approccio. Innazitutto il recordset va aperto altrove, al di fuori della routine di 'avanti' altrimenti come fai ogni volta ad avanzare di uno?

    Quindi, una sola volta all'interno del tuo programma:

    codice:
        Call connettiArchivio
        Rs.Open strSQLArchivio
        Rs.MoveLast
        rsTotale = Rs.RecordCount
          'torna al primo record
        Rs.MoveFirst
    poi

    codice:
    Private Sub cmdAvanti_Click()
        
        if not rs.EOF then
          Rs.MoveNext
          'Trova il numero di record corrente
          intRecordCorrente = Rs.AbsolutePosition
          'Aggiorna il contenuto della etichetta
          'con il numero del nuovo record corrente
          lblContaRecord.Caption = "Pagina" & intRecordCorrente & " di " & rsTotale & ""
          CaricaImmagine (App.Path & "\544CANON\" & Rs!AC_pagina_file)
        End If
    
    End Sub

  4. #4
    Ti ringrazio molto Socket2000, ho capito dove sbagliavo!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.