Autoriser les virgules lorsque de l'import d'un fichier csv

ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 - 21 juil. 2006 à 01:28
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 - 25 juil. 2006 à 05:31
Bonjour,

1/ lorsque j'importe un fichier csv dans access avec mon prog en vb6, il apparaît des problèmes lorsque il y a des virgules dans le fichier csv , par exemple lorsque dans le fichier csv il y a:

Monsieur;Dupont;Jean;25, avenue de la république; 23; etc..

Comment y remédier ? parceque avec la virgule, ca ne veut pas importer

2 / De plus si dans mon fichier, le premier mot est un nombre, ca pose aussi probleme d'import par exemple:

63453;Monsieur;Dupont;Jean;25, avenue de la république; 23; etc..

Merci pour votre aide

5 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
21 juil. 2006 à 08:22
Salut avec le code sous les yeux ce serait plus facile de voir ou est le probleme.

 Drikce 06
0
joebarteamv Messages postés 65 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 5 novembre 2008
21 juil. 2006 à 14:59
Bonjour,je pense que j'ai la solution à ton soucis, il faut remplacer la "," par un "." et vice versa!
Excel->","
Vb->"."
0
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
21 juil. 2006 à 16:07
En faite le fichier de départ il est sous excel,ensuite je le converti en .csv pour pouvoir l'importer sur access grâce à mon programme en vb6. Voici le code:

Private Sub Command1_Click()
On Error GoTo erreurcor20
Dim dynposteimp As Recordset
Dim DT1 As Recordset
Set DT1 = gCurrentDB.OpenRecordset("T1", dbOpenDynaset)

With CommonDialog1
  .DialogTitle = "Open File [CSV]"
  .Filter = " Text Files (*.CSV) |*.csv|All files (*.*) |*.*"
  .FilterIndex = 1
  .Flags = cdlOFNCreatePrompt And cdlOFNExplorer
  .ShowOpen
End With

 If CommonDialog1.Flags = 0 Then
 Exit Sub
 End If

Dim lignestring, problemeImp As String

probleme = "problème au niveau de l'importation"

chemin2 = CommonDialog1.FileName
NumFile_s = FreeFile
Open chemin2 For Input As #NumFile_s
While Not EOF(NumFile_s)
Input #NumFile_s, lignestring

If lignestring = "" Then
'dynposteimp.Close

Close #NumFile_s
Exit Sub
End If

placech1 = InStr(1, lignestring, ";", vbTextCompare)
If placech1 = 0 Then
  DT1.Close
  Close #NumFile_s
  MsgBox probleme
  Exit Sub
End If

Donc à partir de là, le code a récupéré le premier mot terminé par un point virgule. Or si ce premier mot comporte des nombres, alors l'import de marche pas je comprend pas pourquoi. (a noté qu'il s'agit simplement du début de mon code)

De plus pour l'histoire du virgule, [auteurdetail.aspx?ID=40439 joebarteamv]je ne sais pas si je t'ai bien compris, mais tu conseillerais à l'utilisateur de taper des adresse du type 23. Avenue de la République ? Et y a vraiment pas une solution si on utilise une virgule ? 23, Avenue de la République

merci pour vos réponse.
0
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
24 juil. 2006 à 20:36
up
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
25 juil. 2006 à 05:31
up

pour mon problème numéro 2, en faite c'est bon, ça a toujours marché, c'est à dire que même si c'est des nombres qui commencent, ca marche.

Maintenant, c'est le problème du virgule qui me préoccupe toujours.

Dans mon code, (d'ailleurs j'ai corrigé une faute)

placech1 = InStr(placech0 + 1, LigneString, ";", vbTextCompare)
If placech1 = 0 Then
  DT1.Close
  Close #NumFile_s
  MsgBox problemeImp
  Exit Sub
End If

C'est ici que le code prend le premier mot terminé par un point virgule. Or si je met une virgule au millieu de mon mot par exemple:

Mange,r

Alors ca renvoit une erreur.

merci d'avance
0
Rejoignez-nous