Bonjour à tous,
j'utilise Access pour extraire des données de fichiers txt et les rentrer dans différentes tables. Pour ça je déclare un tableau ("tabANA"), y rentre mes données en lisant les fichiers, crée une table ("Table préanalyse"), ouvre un recordset et procède à l'enregistrement des données du tableau dans le recordset.
Tout marche très bien avec la première table, mais avec la seconde je me retrouve avec un comportement bizarre : tout se passe normalement jusqu'au 48ème enregistrement, puis arrive un enregistrement qui ne devrait venir que plus tard, puis plus rien ne s'enregistre... jusqu'à la 1091ème ligne où ça recommence normalement!!
J'ai bien vérifié, le problème ne vient pas du tableau (toutes les données apparaissent lorsqu'on les écrit dans un fichier txt). J'ai également modifié les données du tableau, et le problème persiste, l'interruption des enregistrements apparaissant simplement plus tôt ou plus tard.
Je peux évidemment me débrouiller autrement (en collant les données dans un fichier txt que j'importe ensuite), mais la résolution de ce problème me faciliterait grandement la vie!
J'utilise Access 2010 sous Windows 7 mais j'ai le même problème avec Access 2007 sous XP.
Ci-dessous le code que j'utilise, et ci-jointe une copie d'écran de la table à l'endroit où les enregistrements s'arrêtent (ils recommencent plus loin).
Bien cordialement,et en vous remerciant par avance,
Erwan
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 'Création de la table devant recueillir les données de préanalyse Set Factiva2 = db.CreateTableDef("Table préanalyse") Set fld2 = Factiva2.CreateField("Numéro", dbLong) 'Création du champ NuméroAuto fld2.OrdinalPosition = 0 ' fld2.Attributes = dbAutoIncrField ' Factiva2.Fields.Append fld2 db.TableDefs.Refresh Set idx2 = Factiva2.CreateIndex("Numéro") idx2.Primary = True idx2.Required = True idx2.Unique = True Set fld2 = idx2.CreateField("Numéro") idx2.Fields.Append fld2 Factiva2.Indexes.Append idx2 Set idx2 = Nothing Set fld2 = Nothing With Factiva2 .Fields.Append .CreateField("NumEnr", dbInteger) .Fields.Append .CreateField("Extrait", dbText) End With db.TableDefs.Append Factiva2 db.TableDefs.Refresh 'Ouverture du recordset de la table de préanalyse Set EnrAnalyse = db.OpenRecordset("Table préanalyse") 'Ajout de la première ligne et remplissage du tableau de préanalyse EnrAnalyse.AddNew EnrAnalyse.Update For i = 1 To numligne EnrAnalyse.AddNew EnrAnalyse.Update EnrAnalyse.MoveLast EnrAnalyse.Edit EnrAnalyse("NumEnr") = tabANA(1, i) EnrAnalyse("Extrait") = tabANA(2, i) EnrAnalyse.Update Next i 'Fermeture du recordset EnrAnalyse.Close
Partager