OVH Cloud OVH Cloud

Plus de 255 champs

6 réponses
Avatar
Didier S
Bonjour à tous,

J'ai récupéré un fichier texte séparé par des points virgules. Cependant
celui ci comporte 324 champs et 700 enregistrements
Access n'autorise que 255 champs.
Quelq'un a t-il une solution à me proposer pour ne pas perdre les derniers
champs lors de l'importation ?

Merci à tous
et bon Week End

--
Didier

6 réponses

Avatar
Gafish
Didier S wrote:
Bonjour à tous,


Bonjour,

J'ai récupéré un fichier texte séparé par des points virgules.
Cependant celui ci comporte 324 champs et 700 enregistrements
Access n'autorise que 255 champs.
Quelq'un a t-il une solution à me proposer pour ne pas perdre les
derniers champs lors de l'importation ?


Tu importes dans deux tables, et tu mets un champ clé primaire identique
entre les deux tables pour pouvoir faire la jointure au besoin

Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Papy Bernard
Slt,

De "Didier S"
Bonjour à tous,

J'ai récupéré un fichier texte séparé par des points virgules. Cependant
celui ci comporte 324 champs et 700 enregistrements
Access n'autorise que 255 champs.
Quelq'un a t-il une solution à me proposer pour ne pas perdre les derniers
champs lors de l'importation ?

Merci à tous
et bon Week End


Deux points :

1/ Quel programme a généré ces 324 champs ????

2/ Il y a comme un problème dans l'analyse du problème : 324 champs,
c'est INGÉRABLE. La bonne pratique d'un SGBD digne de ce nom permet de
scinder les problèmes.

--
A+
Papy Bernard (RTCien malgré lui)

Avatar
Didier S
Bonjour

Merci Arnaud,
Je pensais bien que c'était la solution, mais l'assistant import ne
m'affiche que les 255 premiers champs. Je ne peux donc pas sélectionner les
200 premiers pour les mettre dans une table puis les champs restants pour
les mettre dans une seconde table !
Dommage ...

Bonne journée
Didier

"Gafish" a écrit dans le message de news:

Didier S wrote:
Bonjour à tous,


Bonjour,

J'ai récupéré un fichier texte séparé par des points virgules.
Cependant celui ci comporte 324 champs et 700 enregistrements
Access n'autorise que 255 champs.
Quelq'un a t-il une solution à me proposer pour ne pas perdre les
derniers champs lors de l'importation ?


Tu importes dans deux tables, et tu mets un champ clé primaire identique
entre les deux tables pour pouvoir faire la jointure au besoin

Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Gégé38
A ce niveau, je pense que tu dois pouvoir t'en sortir facilement en
transitant d'abord par Excel pour gérer tes champs qui sont alors des
colonnes sous Excel.
Donc:
1) importation du fichier texte sous Excel, facile avec les point-virgule...
2) répartition des colonnes sur plusieurs feuilles
3) importation des feuilles en tables sous Access
Pour le reste...à voir...

Bonne BD
Gégé



"Didier S" a écrit dans le message de news:
443fb86a$0$294$
Bonjour

Merci Arnaud,
Je pensais bien que c'était la solution, mais l'assistant import ne
m'affiche que les 255 premiers champs. Je ne peux donc pas sélectionner
les 200 premiers pour les mettre dans une table puis les champs restants
pour les mettre dans une seconde table !
Dommage ...

Bonne journée
Didier

"Gafish" a écrit dans le message de news:

Didier S wrote:
Bonjour à tous,


Bonjour,

J'ai récupéré un fichier texte séparé par des points virgules.
Cependant celui ci comporte 324 champs et 700 enregistrements
Access n'autorise que 255 champs.
Quelq'un a t-il une solution à me proposer pour ne pas perdre les
derniers champs lors de l'importation ?


Tu importes dans deux tables, et tu mets un champ clé primaire identique
entre les deux tables pour pouvoir faire la jointure au besoin

Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr








Avatar
Eric
Bonjour,

En reprenant la proposition de Gafish avec quelques adaptations.

1 - Eclatement du fichier txt à plus de 300 champs en 2 fichiers txt
Créer 2 fichiers .txt l'un contenant les 249 premiers champs, l'autre
fichier les champs restants et en ajoutant à la structure de chacun un
champ Numero permettant de faire, aprés l'import, la jointure entre les
2 tables.
2 - Importation des 2 fichiers obtenus à l'étape précédente.
3 - Mettre la relation (1 à 1) entre les 2 fichiers après avoir défini
la clé primaire sur le champ Numéro.

Pour le (1), le code pourrait être du genre :
Sub zz()
Dim chemin As String
Dim FichOrigine As String, FichDest1 As String, FichDest2 As String
Dim chaine As String, numero As Long
Dim chaine1 As Variant
Dim chaine2 As String, i As Integer
chemin = CurrentProject.Path & "" ' à adapter
FichOrigine = chemin & "didier.txt" ' à adapter
FichDest1 = chemin & "FichDest1.txt" ' à adapter
FichDest2 = chemin & "FichDest2.txt" ' à adapter
Dim f0 As Integer, f1 As Integer, f2 As Integer
f0 = FreeFile
Open FichOrigine For Input As #f0
f1 = FreeFile
Open FichDest1 For Output As #f1
f2 = FreeFile
Open FichDest2 For Output As #f2
' Récupération des noms des champs sur la 1ere ligne
Line Input #f0, chaine
chaine1 = Split(chaine, ";")
chaine2 = "Numéro" & ";"
For i = 0 To 249
chaine2 = chaine2 & chaine1(i) & ";"
Next i
chaine2 = Left(chaine2, Len(chaine2) - 1)
Print #f1, chaine2
chaine2 = "Numéro" & ";"
For i = 250 To UBound(chaine1)
chaine2 = chaine2 & chaine1(i) & ";"
Next i
chaine2 = Left(chaine2, Len(chaine2) - 1)
Print #f2, chaine2
' Récupération des enregistrements
While Not EOF(f0)
Line Input #f0, chaine
chaine1 = Split(chaine, ";")
cpt = cpt + 1
chaine2 = cpt & ";" ' valeur du compteur Numero
For i = 0 To 249 ' 249 1ers champs
chaine2 = chaine2 & chaine1(i) & ";"
Next i
chaine2 = Left(chaine2, Len(chaine2) - 1)
Print #f1, chaine2
chaine2 = cpt & ";"
For i = 250 To UBound(chaine1)
chaine2 = chaine2 & chaine1(i) & ";"
Next i
chaine2 = Left(chaine2, Len(chaine2) - 1)
Print #f2, chaine2
Wend
Close #f0, #f1, #f2 ' ou Close tout court
End Sub



Bonjour

Merci Arnaud,
Je pensais bien que c'était la solution, mais l'assistant import ne
m'affiche que les 255 premiers champs. Je ne peux donc pas sélectionner les
200 premiers pour les mettre dans une table puis les champs restants pour
les mettre dans une seconde table !
Dommage ...

Bonne journée
Didier

"Gafish" a écrit dans le message de news:


Didier S wrote:

Bonjour à tous,


Bonjour,


J'ai récupéré un fichier texte séparé par des points virgules.
Cependant celui ci comporte 324 champs et 700 enregistrements
Access n'autorise que 255 champs.
Quelq'un a t-il une solution à me proposer pour ne pas perdre les
derniers champs lors de l'importation ?


Tu importes dans deux tables, et tu mets un champ clé primaire identique
entre les deux tables pour pouvoir faire la jointure au besoin

Arnaud
--
Charte du forum : http://www.mpfa.info/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
../...
Manque la déclaration de cpt
donc Dim cpt as long en début de procédure

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr