Tranfert Fichier Texte dans une nouvelle Table Access

pataccess Messages postés 39 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 31 mars 2006 - 30 nov. 2005 à 09:13
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 - 30 nov. 2005 à 11:43
Bonjour à tous !

1°) 1 ère Question

J'aimerai vous poser une question toute simple , je le sais par avance mais je la pose. Je gère actuellement une base Access, chaque mois des fichiers ''Texte'' sont importés automatiquement par l'aide du formulaire dans ma base. J'ai pour l'heure actuelle deux fichiers texte ("CamEpCon" et "CamHpCon") qui s'exporte très correctement dans ma base. Quand je dis exporter s'est crée une nouvelle table au sein d'Access pour ces deux fichiers.


Public Sub ImportationFichiersEPHP()
Dim StrFichier As String
Dim ret

On Error GoTo Err_ImportationFichiersephp

Dim specdossier As String
Dim fs, f, f1, fc, s
Dim boolEP As Boolean
Dim boolHP As Boolean

DoCmd.Hourglass (True)


Set rsparam CurrentDb.OpenRecordset("SELECT Path FROM Param_Systeme where NomParam 'Import'", , dbReadOnly)
specdossier = rsparam.Fields("Path").Value ' "e:\comintex\import"

DoCmd.DeleteObject acTable, "CamEpCon_Importerrors"
DoCmd.DeleteObject acTable, "CamHpCon_Importerrors"
DoCmd.DeleteObject acTable, "CamEpCon"
DoCmd.DeleteObject acTable, "CamHpCon"

' Indication pour importer les fichiers (chemin)

Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
boolHP = False
boolEP = False


'Pour chaque fichier su situant dans le dossier import : test


For Each f1 In fc
' ***********************************************
If f1.Name = "CamEpCon.txt" Then
StrFichier = specdossier & "" & f1.Name
Application.DoCmd.TransferText acImportDelim, "Import_CamEpCon", "CamEpCon", StrFichier, True
MsgBox "Fichier CamEPCon bien importé", , "Importation Fichier Texte"
boolEP = True
End If
If f1.Name = "CamHpCon.txt" Then
StrFichier = specdossier & "" & f1.Name
DoCmd.TransferText acImportDelim, "Import_CamHpCon", "CamHpCon", StrFichier, True
MsgBox "Fichier CamHPCon bien importé", , "Importation Fichier Texte"
boolHP = True
End If

Je choisi donc de faire la même manière pour mon nouveau fichier que je nomme "CamCon" en remplaçant par le nom CamCon. L'export ne se produit pas car une erreur s'affiche :


Erreur 3625 : La spécification des fichiers texte 'Import_CamCon' n'existe pas. Vous ne
pouvez pas importer, exporter ou lier en utilisant cette spécification.


Je suis donc un peu surpris de ce qui se passe. Que faire ?

2°) 2 eme Question

Dans un deuxième cas, je me suis amuser à l'importer manuellement par la fonction Fichier => Import . Lors de cette import le Fichier Texte en nouvelle Table access rencontre des probleme et ne prends pas tous les champs d'une même colonne . A quoi cela peut être dû ? Sachant que l'ensemble de la colonne a les memes propriétés et que ces certains codent seulement qui ne sont pas transmis dans la table Access.

Patrick

3 réponses

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
30 nov. 2005 à 09:49
Salut :)

il n'y aurait dans ton fichier un caractère gênant par hazard. style une quote (simple ou double) ou un caractère qui pourrait servir de séparateur : virgule, point virgule, tabulation, ...
un caractère qui ferait partit des "données" et qui est vu autrement.

Vincent
0
pataccess Messages postés 39 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 31 mars 2006
30 nov. 2005 à 10:08
Et bien là jsutement je ne sais pas quand je met le séparateur manuellement ca marche car je met format Texte pour tout mais autrement ca ne fonctionne pas !!

Patrick
0
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
30 nov. 2005 à 11:43
Ouvre les fichiers dans notepad (blocnote), un qui marche et l'autre qui marche pas, et essaye d'analyser les différences, s'il s'agit d'un pb de séparateur, je pense qu'il est possible d'en fixé un par code ou au niveau de la requête
0
Rejoignez-nous