Importation du fichier CSV vers Table ACCESS

Fermé
loradol Messages postés 48 Date d'inscription mardi 29 avril 2014 Statut Membre Dernière intervention 30 mai 2016 - Modifié par loradol le 25/05/2015 à 15:32
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 8 juin 2015 à 09:34
Je veut importer un fichier CSV vers une table access tel que :
mon fichier CSV contient :32187t;dalal;02/05/2015;08:05;16:00
et ma table contient les colonnes:Matricule;nom;date;Heure entrée;Heure Sortie
mon probleme c'est que : si j'ai importé mon fichier CSV le résultat donne:
(32187t;dalal;02/05/2015;08:05;16:00)dans une seul colonne
alors que je voudrais :
colonne MatriculeMatricule=32187t
colonne nom=dalal
colonne date=02/05/2015
colonne Heure entrée=08:05
colonne Heure Sortie=16:00

merci d'avance

4 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
8 juin 2015 à 09:34
Bonjour,

FIELDTERMINATOR ne marche pas avec Access. Vous pouvez lire le fichier csv et ecrire un autre fichier csv en remplacant les ; par des , et utiliser ce fichier pour votre transfert vers votre tables Access

Vous pouvez aussi voir du cote du logitiel, qui ecrit le fichier csv, s'il y a un parametre qui vous donnerait la virgule en separateur
3
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 27/05/2015 à 17:50
Bonjour loradol

Les champs dans ton fichier CSV sont délimité par un point-virgule.
Si tout se retrouve dans la même colonne, c'est probablement parce qu'il y a une erreur à ce niveau.

Si exemple, tu spécifies que les champs sont séparé par une virgule, Access n'en trouve pas et met tout dans la même colonne.

De quelle manière fais-tu ton importation ?

P.S. (cette section ci du forum est pour les question sur visual basic (VB), ou visual basic for application (VBA excel, word) Tu es peut-être dans la mauvaise section.
0
loradol Messages postés 48 Date d'inscription mardi 29 avril 2014 Statut Membre Dernière intervention 30 mai 2016
31 mai 2015 à 11:11
Bonjour PlacageGranby
Voici mon code d'Iimportation :(avec VB6 et la BDD Access )

Dim cnn As New ADODB.Connection
Dim sqlString As String

cnn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\\serveur\bVisualPaie\Dossiers\anabib.mdb;" & _
"Jet OLEDB:Engine Type=4;"

sqlString = "SELECT * INTO [kelio] FROM [Text;DATABASE=C:\Documents\].[Fichier.csv]"

cnn.Execute sqlString

merci d'avance
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
28 mai 2015 à 12:27
Bonjour a vous deux,

En effet, c'est le point-virgule qui pose probleme. Passez par un import avec specification:

tutoriel:
https://grenier.self-access.com/access/requetes-graphiques/importation-de-donnees-episode-5/

et Méthode DoCmd.TransferText:
https://docs.microsoft.com/fr-fr/office/vba/api/access.docmd.transfertext?redirectedfrom=MSDN
0
loradol Messages postés 48 Date d'inscription mardi 29 avril 2014 Statut Membre Dernière intervention 30 mai 2016
31 mai 2015 à 11:10
Bonjour f894009
justement le point virgule qui me pose le probleme;mais je n'arrive pas à le résoudre
j'ai essaie avec les fichiers Excel aucune probleme mais CSV ?
je travaille en VB6 et access
merci d'avance
0
loradol Messages postés 48 Date d'inscription mardi 29 avril 2014 Statut Membre Dernière intervention 30 mai 2016
31 mai 2015 à 10:57
Bonjour PlacageGranby
Voici mon code d'Iimportation :(avec VB6)

Dim cnn As New ADODB.Connection
Dim sqlString As String

cnn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\\serveur\bVisualPaie\Dossiers\anabib.mdb;" & _
"Jet OLEDB:Engine Type=4;"

sqlString = "SELECT * INTO [kelio] FROM [Text;DATABASE=C:\Documents\].[Fichier.csv]"

cnn.Execute sqlString

merci d'avance
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
1 juin 2015 à 15:11
Bonjour Loradol,

Malheureusement, je ne m'y connais pas beaucoup dans les lien ODBC SQL, mais j'ai demandé à mon ami Google la question SQL délimiteur.

Il m'a répondu de chercher sur le paramètre FIELDTERMINATOR.

Si ma compréhension est bonne, la virgule est le délimiteur par défaut des fichier CSV (comma separated value, le nom le dit). Il faudrait utiliser FIELDTERMINATOR seulement lorsque l'on utilise un autre symbole.

Donc, suggestion #1, remplacer les point-virgule par des virgules et voir si ca fonctionne. Si oui, valider qu'il n'y a pas de virgule dans les champs sinon ca causera problème
Suggestion #2, trouver des exemples de requêtes SQL avec FIELDTERMINATOR et les adapter au besoin.
0
loradol Messages postés 48 Date d'inscription mardi 29 avril 2014 Statut Membre Dernière intervention 30 mai 2016 > PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019
7 juin 2015 à 16:12
Merci pour la réponse ,mais malheureusement je ne trouve pas des exemples de requêtes avec FIELDTERMINATOR dans access 97
0