Bonjour,
je veux importer un fichier txt pour créer une table (et l'inclure après ds une procédure automatique)

mon fichier txt se présente ainsi:
600809.544;128568.889;0;COA;0110;1 01
600809.544;128568.889;0;COA;0110;MOA-COA


mon module est écrit ainsi:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
Dim Fichier As String, ligne As String, mslink As String, B As String, C As String
Dim X As String, Y As String, nom As String, pave As String, A As String, nvaleur As String
Dim I As Double, J As Integer, K As Integer
 
 
DoCmd.DeleteObject acTable, "pvpcoa"
DoCmd.RunSQL "create table pvpcoa (mslink double constraint MyFieldconstraint Primary key,x double, y double, a double, nom varchar(255), pave varchar(255), nvaleur varchar(255));"
DoCmd.OpenTable "pvpcoa", acNormal, acEdit
 
Fichier = "C:\pvp1\encours\COA\pvptagcoa.txt"
Open Fichier For Input As #1
I = 0
 
Do Until EOF(1)
I = I + 1
mslink = Str(I)
Input #1, ligne
B = LTrim(ligne)
J = 0
C = ""
 
Do Until J = 128
J = J + 1
C = Mid(B, J, 1)
If C = ";" Then
X = Left(B, J - 1)
X = LTrim(X)
Exit Do
Else
End If
Loop
 
K = J
Do Until K = 200
K = K + 1
C = Mid(B, K, 1)
If C = ";" Then
Y = Mid(B, J + 1, K - J - 1)
Y = LTrim(Y)
Exit Do
Else
End If
Loop
 
J = K
Do Until J = 200
J = J + 1
C = Mid(B, J, 1)
If C = ";" Then
A = Mid(B, K + 1, J - K - 1)
A = LTrim(A)
Exit Do
Else
End If
Loop
 
K = J
Do Until K = 200
K = K + 1
C = Mid(B, K, 1)
If C = ";" Then
nom = Mid(B, J + 1, K - J - 1)
nom = LTrim(nom)
Exit Do
Else
End If
Loop
 
J = K
Do Until J = 200
J = J + 1
C = Mid(B, J, 1)
If C = "" Then
pave = Mid(B, K + 1, J - K)
pave = LTrim(pave)
Exit Do
Else
End If
Loop
 
K = J
Do Until K = 200
K = K + 1
C = Mid(B, K, 1)
If C = ";" Then
nom = Mid(B, J + 1, K - J - 1)
nom = LTrim(nvaleur)
Exit Do
Else
End If
Loop
 
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO pvpcoa (mslink,x,y,a,nom,pave,nvaleur) VALUES ('" + mslink + "','" + X + "','" + Y + "','" + A + "','" + nom + "','" + pave + "','" + nvaleur + "');"
 
Loop
Close #1
DoCmd.Save acTable, "pvpcoa"
DoCmd.Close acTable, "pvpcoa"
DoCmd.SetWarnings True
DoCmd.Quit
 
End Function
mais voilà la table obtenue se présente ainsi:

colonnes: mslink x y a nom pave ID
mslink ok, x ok, yok, a ok, nom ok,
mais pavé pas bon 0110;1 01 ou 0110;MOA-COA or je voudrais que 101 ou MOA-COA soit ds le champs ID car champs ID est vide

je ne trouve pas l'erreur dans mon module

merci pour votre aide