Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2012, 11h57   #1
Membre du Club
 
Inscription : décembre 2007
Messages : 147
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 147
Points : 42
Points : 42
Par défaut délimiteur et point virgule

bonjour,

j'essaie de me connecter via ADO à un fichier csv dont le séparateur est le point virgule.

Mon code se présente ainsi :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private sub connect_csv() 
     Dim cnn As ADODB.Connection
     Set cnn = New ADODB.Connection
 
     cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=""TEXT;HDR=YES;FMT=Delimited(;)"""
     cnn.Open
     Set rs = New ADODB.Recordset
     rs.ActiveConnection = cnn
     rs.CursorLocation = adUseServer
 
     rs.Source = "select * from test.csv"
     rs.Open
 
      For Each champ In rs.Fields
          Debug.Print champ.Name
      Next
End sub
J'accède bien au fichier sauf qu'il ne me sépare pas mes colonnes...en gros j'ai qu'une colonne.

j'ai essayé de changer le paramètre en mais ça ne marche seulement que pour les fichiers CSV dont le séparateur est une virgule...

Une idée svp ?

sai
saigon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 20h37   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

De mémoire, et par expérience, il me semble que l'on ne peut pas spécifier le caractère délimiteur dans la chaîne de connexion.

Ce que tu peux essayer, c'est utiliser un fichier schema.ini.
Ça permet au pilote de données texte de récupérer des paramètres d'initialisation.

Mettre FMT=Delimited dans la chaîne de connexion ADO.
Créer un fichier schema.ini dans le même dossier que le fichier à ouvrir.
Dans le fichier schema.ini mettre :
Code :
1
2
3
4
5
[test.csv]
ColNameHeader = True
Format=Delimited(,)
DecimalSymbol=.
CurrencyDecimalSymbol=.
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 11h46   #3
Membre du Club
 
Inscription : décembre 2007
Messages : 147
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 147
Points : 42
Points : 42
merci pour ta réponse.

je vais tenter cette solution. A priori il faut que le fichier soit encodé en ascii pour que le pilote jet 4.0 le prenne en compte (vu ici et là dans divers forums).

Je tente ça et vous tiens au courant !!

Edit : ça marche parfaitement avec le schema.ini

Merci beaucoup.

sai
saigon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h16.


 
 
 
 
Partenaires

Hébergement Web