Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [VB6] muoversi tra i record

    ciao a tutti,

    io vorrei sfogliare i record di un database e se arrivo all'ultimo rinivia dal primo allora ho fatto cosi

    codice:
        Set Db = OpenDatabase(App.Path & "\db.mdb", False, False)
        Set Rs = Db.OpenRecordset("link") 'dichiari il recordset
        Set Data.Recordset = Rs ' Assegna il Recordset
        While Not Data.Recordset.EOF
        id = (Data.Recordset.Fields("id"))
        Data.Recordset.MoveNext
        Wend
    in questo modo li sfoglio tutti e stampo l'id per sapere quanti record ho, adesso ho due tasti (command1,command2) che cosa devo assagnare per sfogliare il database??


  2. #2
    se a te interessa sapere quanti record hai ti basta fare un RecordCount, in questo modo:
    codice:
    Set Db = OpenDatabase(App.Path & "\db.mdb", False, False)
        Set Rs = Db.OpenRecordset("link") 'dichiari il recordset
        Set Data.Recordset = Rs ' Assegna il Recordset
        id = Data.Recordset.RecordCount
    per muoverti invece tra i recordset ti sarà sufficiente utilizzare le proprietà MoveFirst, MoveLast, MovePrevious, MoveNext.
    in questo modo:
    codice:
    Data.Recordset.MoveFirst
    codice:
    Data.Recordset.MoveLast
    codice:
    Data.Recordset.MovePrevious
    codice:
    Data.Recordset.MoveNext

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Grazie mille per la risposta

    quindi al load metto

    codice:
    Set Db = OpenDatabase(App.Path & "\db.mdb", False, False)
        Set Rs = Db.OpenRecordset("link") 'dichiari il recordset
        Set Data.Recordset = Rs ' Assegna il Recordset
        id = Data.Recordset.RecordCount
    mentre al command1 metto

    codice:
    Data.Recordset.MoveNext
    autore = (Data.Recordset.Fields("autore"))
    descrizione = (Data.Recordset.Fields("descrizione"))
    url = (Data.Recordset.Fields("url"))
    in qusto modo i campi si riempiranno dei dati??


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie mille ancora funziona, solo una cosina..

    se arriva alla fine ma da errore

  5. #5
    Originariamente inviato da Rossella_75
    grazie mille ancora funziona, solo una cosina..

    se arriva alla fine ma da errore
    e tu intercetti la fine del file in questo modo:
    codice:
    If Data.Recordset.EOF Then
       msgbox "sono arrivata alla fine"
    End If
    ...

    ciao ciao...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Cosi non va..


    [code]
    If Data.Recordset.EOF Then
    MsgBox "sono arrivata alla fine"
    End If
    Data.Recordset.MoveNext

    autore = (Data.Recordset.Fields("autore"))
    descrizione = (Data.Recordset.Fields("descrizione"))
    url = (Data.Recordset.Fields("url"))
    Flsmovie.SetVariable "autore", autore
    Flsmovie.SetVariable "descrizione", descrizione
    Flsmovie.SetVariable "url", url

  7. #7
    Originariamente inviato da Rossella_75
    Cosi non va..


    codice:
    If Data.Recordset.EOF Then
        MsgBox "sono arrivata alla fine"
    End If
    Data.Recordset.MoveNext
    autore = (Data.Recordset.Fields("autore"))
    descrizione = (Data.Recordset.Fields("descrizione"))
    url = (Data.Recordset.Fields("url"))
    Flsmovie.SetVariable "autore", autore
    Flsmovie.SetVariable "descrizione", descrizione
    Flsmovie.SetVariable "url", url
    certo che non va... anche dopo aver controllato se sei alla fine tu continui le istruzioni che seguono. devi uscire dalla sub o dal ciclo in cui ti trovi...
    quindi, ammesso che tu sia in una sub dovrai scrivere:
    codice:
    If Data.Recordset.EOF Then
        MsgBox "sono arrivata alla fine"
        exit sub
    End If
    ...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ma io non voglio uscirne, vorrei che una volta accertato che mi trovo alla fine riniziasse dal primo record

  9. #9
    Originariamente inviato da Rossella_75
    ma io non voglio uscirne, vorrei che una volta accertato che mi trovo alla fine riniziasse dal primo record
    ok, allora scrivi così:
    codice:
    If Data.Recordset.EOF Then
        MsgBox "sono arrivata alla fine"
        Data.Recordset.MoveFirst
    End If
    
    autore = (Data.Recordset.Fields("autore"))
    descrizione = (Data.Recordset.Fields("descrizione"))
    url = (Data.Recordset.Fields("url"))
    Flsmovie.SetVariable "autore", autore
    Flsmovie.SetVariable "descrizione", descrizione
    Flsmovie.SetVariable "url", url
    
    Data.Recordset.MoveNext

    ti do un consiglio, l'istruzione Data.Recordset.MoveNext mettila alla fine...altrimenti quando torni sul primo record la prima cosa che fa il tuo programma è passare al secondo record...


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Grazie mille è perfetto

    alla prossima

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.