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 :
La connexion se fait très bien et je n'ai aucun bug.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager