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

    [VB 6] Creare CSV da un Recordset

    Ciao a tutti, ho un problema nel creare un CSV con vb 6. In realtà ho idea di come realizzarlo ma non conoscendo bene la sintassi vb mi trovo un po' in difficoltà...anzi senza un po'.

    Devo creare un file CSV a partire da un recordset
    codice:
    'scorro recordset e genero file
    Do While Not rs.State = adStateClosed
        'vorrei usare il metodo GetRow per prendere la riga
    
        'trasformare la riga in stringa con GetString
    
        'aggiungere la riga ad un Array
    
        rs.MoveNext
    Loop
    
    'a questo punto ho un Array con il contenuto del rs e la prima riga è l'intestazione del CSV
    'dovrei stamparlo con il FileScriptingObject riga per riga in c:/Programmi per esempio
    Questo è tutto, credo che la logica sia corretta ma fatemi sapere se sbaglio.
    Potrei direttamente stampare riga per riga anche dentro il ciclo con FileScriptingObject ora che ci penso, purtroppo non so COME farlo.
    Help, anche un link ad una guida, qualcosa

    Io cmq continuo a provare
    --Fletto i muscoli e sono nel vuoto--

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Calma ... intanto cosi'

    Do While Not rs.State = adStateClosed

    non controlli affatto quando il recordset si conclude perche' non si chiude da solo.
    Semmai ottieni una condizione di EOF che e' quella che devi testare

    Do While Not rs.Eof

    E poi, non devi usare alcun metodo di sorta ... dentro al ciclo hai a disposizione tutti i campi del record che ti servono, che so, ad esempio

    rs.Fields("Nome").Value

    e li scrivi semplicemente nel file. Per scrivere, puoi usare semplicemente la Open ... Print # ... senza il FileSystemObject ...

    Piu' o meno cosi'

    codice:
    Open "File.csv" For Output As #1
    Do While Not rs.State = adStateClosed
        Print #1, rs.Fields("Cognome").Value & "," & rs.Fields("Nome").Value
        rs.MoveNext
    Loop
    Close #1

  3. #3
    Ti ringrazio per la risposta, lo provo e ti faccio sapere

    Grazie
    --Fletto i muscoli e sono nel vuoto--

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Con il metodo getstring però puoi mettere tutto in una stringa direttamente...

    codice:
     
      strq = "select * from tabella"
      rs.Open strq, conn
      stringa = rs.GetString(adClipString, -1, ";", vbCrLf, "")
    Ti restituisce una stringa con tutto quello che estrai da tabella con campi separati da ; senza bisogno di fare un ciclo.
    Basta che la scrivi nel file e il gioco è fatto.

    Prima devi verificare che il recordset non sia in EOF.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

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.