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

Access Discussion :

Incrémentation "numéro automatique" defaillante


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Incrémentation "numéro automatique" defaillante
    bonjour à tous,
    c'est pas faute d'avoir chercher partout, mais je ne trouve pas de réponse à mon problème.
    Depuis quelques mois j'alimente une bdd access qui contient 3 tables, dont 2 qui ont en clef primaire des numéros automatiques, sans doublons.

    Mais e problème est le suivant : le numéro auto ne s'incrémente plus dans une des table et prends des valeurs déjà existantes

    Comment faire pour résoudre ce soucis très très embetant?

    Merci à tous pour votre aide

    Marie.

    PS je n'utilise pas vba dans cette base "simple" (enfin au départ)

  2. #2
    Membre régulier Avatar de Sonic
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 96
    Points
    96
    Par défaut
    Salut
    Le problème survient lorsqu'il y a des "trous" dans la numérotation et que tu effectues un compactage de ta base. Access remet le compteur au premier de disponible et pas à max + 1. Moi ce que je fais c'est que je recherche justement ce max + 1 et j'ajoute un enregistrement en forcant le numéro auto avec cette valeur.
    Mais ca ne peut se faire quand vba :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim valMax as long
    dim rcd as DAO.Recordset
         'on récupère la valeur max
         set rcd = currentdb.openrecordset("SELECT MAX(NumAuto) FROM MaTable")
         valMax=rcd.fields(0)+1
         rcd.close
         'on l'insère
         currentdb.execute "insert into MaTable (NumAuto) Values (valMax)"
         'on la supprime pour que ca reste propre
         currentdb.execute "delete * from MaTable Where NumAuto=" & valmax

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/02/2009, 20h24
  2. Incrémentation d'un numéro automatique
    Par gawgab dans le forum VBA Access
    Réponses: 10
    Dernier message: 27/10/2008, 09h15
  3. [SQL] Simples quotes échappés automatiquement ?
    Par elspliffo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/05/2007, 22h26

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