IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Problème d'enregistrement dans une table


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Problème d'enregistrement dans une table
    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
    Nom : Copie_écran.jpg
Affichages : 58
Taille : 496,4 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faudrait quelques informations sur ta table entre autre :

    De quel type est le champ Extrait ?
    Y at-il une indexation sur ta table qui n'autorise pas les doublons ?

    Philippe

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonsoir Philippe,

    merci de venir à mon secours!

    le champ Extrait est de type texte, avec un taille limitée à 255 caractères (mais j'ai pris soin de limiter les string contenus dans le tableau à moins de 255 caractères, et j'ai même fait un test avec des chaînes beaucoup plus courtes).

    C'est le champ "Numéro" qui est indexé, sans doublon possible, il est du type Numéroauto.

    Bien cordialement,

    Erwan

  4. #4
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Après de nouveaux tests, je réalise qu'il y a des problèmes également avec la première table. Les enregistrements s'interrompent, puis recommencent, puis s'interrompent à nouveau...

    Le mystère reste entier!

    Quelqu'un à une idée?

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut,

    ça n'a peut-être rien à voir mais je trouve qu'une partie de ton code est peu académique.
    As-tu essayé en enlevant .Update / .MoveLast / .Edit ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Ajout de la première ligne et remplissage du tableau de préanalyse 
    For i = 1 To numligne 
    EnrAnalyse.AddNew EnrAnalyse("NumEnr") = tabANA(1, i)
    EnrAnalyse("Extrait") = tabANA(2, i)
    EnrAnalyse.Update
    Next i

  6. #6
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ah oui, tiens, là ça marche beaucoup mieux... #rouge de honte#

    C'est le drame des autodidactes de l'informatique qui n'ont pas le temps de s'y plonger : on se retrouve bloqué avec des erreurs idiotes. En l'occurrence, je croyais qu'il fallait ajouter un ligne, et ensuite écrire, quand il suffisait de tout faire en même temps.

    Merci beaucoup de ton aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'enregistrement dans une table Access
    Par sebbonard dans le forum VB.NET
    Réponses: 5
    Dernier message: 30/10/2012, 22h01
  2. Problème enregistrement dans une Table
    Par YOP33 dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/05/2008, 00h58
  3. Réponses: 2
    Dernier message: 18/04/2007, 17h37
  4. [SQL] Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/08/2006, 13h28
  5. Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/08/2006, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo