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…
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 une virgule alors l’import ne marche pas je comprend pas pourquoi. (a noté qu’il s’agit simplement du début de mon code)
Je sais pas je fais pas de VB, mais la première chose que je ferais c’est d’afficher ce que ton logiciel a en lecture puisque c’est ça qui pose problème
plutot que changer tout ton code, avant de commencer à l’executer, tu remplaces tout les virgules par rien,
ou par un autre caractère, et une fois ton import fini, tu remplaces ce caractère par une virgule
Cloch Hard, ça, ça s’appelle du bidouillage, pas du développement :??:
Quant à toi Predateur1, tu peux essayer avec la fonction split pour découper ta chaîne. Tu n’auras peut être plus le problème de la virgule --> à tester !
Pour Info : monTab = Split(maChaine,monSéparateur)
Dans ton cas :
monTab = Split(lignestring,";")
placech1 = monTab(0) ou monTab(1), je ne sais plus quel est le 1er indice des tableaux en VB !