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

    [VB&]Spostarsi in un recordset

    Per scrivere il codice che mi permettesse di muovermi in avanti e indietro al'interno di un recordset ho utilizzato i suggerimenti di un post precedente e ho fatto:
    codice:
    Private Sub cmdAvanti_Click()
      rs.MoveNext
        If rs.EOF Then
        MsgBox "fine record"
        rs.MoveLast
        End If
      CaricaImmagine (pathImmagine & rs!pagina_file)
    End Sub
    
    Private Sub cmdIndietro_Click()
      rs.MovePrevious
        If rs.BOF Then
        MsgBox "inizio record"
        rs.MoveFirst
        End If
       CaricaImmagine (pathImmagine & rs!pagina_file)
    End Sub
    Siccome il pulsante "avanti" funziona (tranne un messaggio di errore finale quando arriva a fine recordset, a cui rimedierò in seguito)ma quello "indietro" dà errore perché dice che non si possono scorrere i record all'indietro, guardando la guida ho aggiunto :
    codice:
        rs.CacheSize = 10
    in tutti e due i pulsanti. però mi dà errore e dice :"operazione non consentita nel contesto corrente".
    Prima di fare questa prova avevo sostituito
    codice:
    rs.MovePrevious
    con
    codice:
    rs.Move -1
    perché il libro scitto da Balena diceva che in questo modo si evitava di dover metter mano alla cache.
    Nisba anche in questo caso. Che fare allora? Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Probabilmente dipende dal tipo di recordset che hai aperto.

    Come lo hai aperto?

  3. #3
    Ho scritto in un modulo
    codice:
    Public Const strConnArchivioTomi = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    Data Source=C:\Documents and Settings\vicky\Documenti\ArchivioTomi.mdb;" & _
    Persist Security Info=False"
    
    Public cn As New ADODB.Connection
    Public rs As New ADODB.Recordset
    Nell'evento form_load del form2 che contiene i pulsanti avanti e indietro e che visualizza i record ho messo:
    codice:
     rs.Open strSQL, cn
    Nel form1 che precede quello che contiene i pulsanti avanti e indietro , cioè nel form dove faccio la query per ottenere il recordset che invierò al form di visualizzazione(form2) ho scritto
    codice:
        cn.Open strConnArchivioTomi
    Mi sembra un po' incasinato, anche se funziona tutto (tranne i pulsanti avanti e indietro). Non ho le idee chiare, ma nel libro mi perdo.

  4. #4
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  5. #5
    Vi ringrazio, ho capito che era questione di cursore. Adesso mi studio meglio la connessione e l'apertura recordset.

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao vicky.
    Io uso questo tipo di codice:
    codice:
      Dim CnsA1 As New ADODB.Connection
            Dim RST1 As New ADODB.Recordset
    
            'Esegue la connessione con il DataBase:
            With CnsA1
                .ConnectionString = DataConnessione
                .CursorLocation = adUseClient   'tipo di cursore
                .Mode = adModeShareDenyNone     'nessuna limitazione
                .CommandTimeout = 15
                .Open
            End With
        
        RST1.Source = "SELECT Titolo, ...
        RST1.Open , CnsA1, adOpenDynamic , adLockOptimistic
        
        FrmAnagProf.CmbPr1.Text = RST1("Titolo")
    ... ... 
        
        'Chiude e cancella il recordSet:
            RST1.Close
            Set RST1 = Nothing
        'Chiude e cancella la connessione:
            CnsA1.Close
            Set CnsA1 = Nothing
    LM

  7. #7

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.