Import fichier texte dans un recordset depuis Excel
Bonjour,
J’ai besoin de récupérer depuis Excel dans un recordset via ADO un fichier texte délimité.
Le fichier .csv est un fichier délimité par le point virgule et comporte une quarantaine de champ
Voilà le code que j’utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Dim CnXL As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
CnXL = "Driver={Microsoft Text Driver (*.txt; *.csv)};""Dbq=" & NomRepertoire & ";Extensions=asc,csv,tab,txt"
CnXL.Open
strSQL = "SELECT * FROM [" & NomFichier & "]"
Set rst = CnXL.Execute(strSQL)
rst.MoveFirst
intLi = rst.Fields.Count
Do Until rst.EOF
For i = 0 To intLi - 1
msgbox rst.Fields(i)
Next i
rst.MoveNext
Loop |
La connexion se fait très bien et je n'ai aucun bug.
Mais intLi= 10 au lieu de 47 et le premier champ récupère en fait plusieurs champs et les champs suivants s’appellent F2, F3 au lieu d’avoir le bon nom.
Idem si j'utilise la commande CopyFromRecordset.
La récupération du fichier fonctionne très bien par la méthode classique de lecture de fichier texte mais je préfère adopter la méthode ADO car demain des champs peuvent être rajoutés en plein milieu du fichier.
Avec le recordset créé via ADO, je peux traiter mes données comme je veux.
Merci pour votre aide
Dominique