Récupération Recordset dans array

Bonjour à tous,

Sub Extraction()

    Dim base As String
    Dim rst           As ADODB.Recordset

    base = "Nom_Fichier"
    DossierCSV = "C:\Users\Florian\Desktop\"

    Set cn = CreateObject("ADODB.Connection")

    With cn
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DossierCSV & ";Extended Properties=""Text;HDR=no;FMT=Delimited;"""
        ActiveCell.CopyFromRecordset .Execute("Select * from [" & base & "#csv]")
        Set rst = cn.Connection.Execute("Select * from [" & base & "#csv]")
        t = cn.GetRows
        .Close
    End With

End Sub

Je souhaite récupérer un recordset dans une variable de type tableau:

Le résultat se colle bien dans la feuille ( plus de 500 000 lignes), mais j'ai encore un problème notamment de délimiteur, il ne prend pas en compte le délimiteur ";" et me mais tout à la suite, je n'arrive pas à résoudre ce problème après plusieurs essais.

Second problème, je sais que normalement les arrays sont limités de mémoire ( a peu près 32000 lignes) mais il y a t'il une solution pour récupération de l'intégralité de la requete dans une variable ?

Le code code bloc sur la ligne :

Set rst = cn.Connection.Execute("Select * from [" & base & "#csv]")

Est ce que quelqu'un sait pourquoi? merci à vous

Bon en fait je crois que je viens de réussir, pour la récupération de la table dans un array, il ne me reste plus qu'à comprendre pourquoi mon délimiteur ne fonctionne pas

Bonjour,

Pourquoi n'utilises-tu pas Power Query pour lire un csv, ou VBA sans ADO ?

Danieil

Bonjour DanielC,

Il me semblait que le recordset était plus rapide niveau temps de traitement que PowerQuery, et le non de fichier est variable ainsi que son emplacement, j'ai trouvé plus simple d'utiliser un recordset.

Peut être que je me trompe sur l'efficience de PowerqUERY VS Recordset

Et l'objectif second est de récupérer toutes les infos dans un array afin de les traiter.

Rechercher des sujets similaires à "recuperation recordset array"