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

IHM Discussion :

[Access 2003/VBA]Numéro identifiant auto-incrémenté


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut [Access 2003/VBA]Numéro identifiant auto-incrémenté
    Bonjour,

    Le problème que je rencontre aujourd'hui concerne les numéro d'identifiants auto incrémentés sous Access.

    En fait apapremment il semblerait que les numéros qui sont générés ne se suivent pas. Comment faire pour éviter ce genre de problème ? Comment faire pour les remettre à 0 ?

    Merci d'avance.

    Marco.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Points : 75
    Points
    75
    Par défaut
    Normalement les numéros se suivent. Fait un copier coller en créant une nouvelle table.

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    A ma connaissance, les numéros auto se suivent. A moins que tu n'utilises une base avec réplicats?

    Pour remettre à zéro, il faut que la table soit vide et compacter la base.

    Bon courage,

    pgz

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour à tous,

    En fait non pas du jer n'utilise pas de base avec réplicats... En fait j'ai bien vu cette possibilité, mais j'avoue ne pas savoir comment l'utiliser.

    Je vais voir sinon pour vider la table et compacter la base. Merci pour les réponses. Sinon, si quelqu'un a d'autres idées n'hésitez pas.

    A bientôt.

    Marco.

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Non, il se peut que les numéros ne se suivent pas.

    Quand tu crées un enr, Access lui attribue un numéro mais si tu annule la création, le numéro est perdu ce qui fait un trou dans la numérotation.

    Si tu as besoin d'un compteur sans 'trou' il faut le faire par programmation.

    Il y a un exemple sur ce site mais attention il ne marche qu'en mode mono-utilisateur.

    A+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour et merci marot_r,

    En fait je vais être en mode multi-utilisateurs. Ce problème de "trous" m'a été reproché en présentation de mon outil en fait ce matin.

    Et apparemment au delà de l'aspect "abandon de création de nouvel enregistrement", apparemment Access saute des numéros... Ca a été constaté par les différentes personnes lors de la présentation.

    Est ce que quelqu'un saurait d'où ça vient et comment le solutionner (au delà du compactage de base) ?

    Par avace merci.

    Marco.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    le problème n'a pas de solution si tu veux garder ton champ auto
    il va te falloir le gèrer toi même
    pour cela tu crées un champ long que tu nommes clef par exemple et cette requête devrait t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     
     
    SELECT Min([clef]+1) AS NCLEF
    FROM matable
    WHERE DLookUp("clef","matable","clef=" & [clef]+1) Is Null;

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Je viens de trouver pour ce problème : je faisais un openform en mode ajout et derrière un ajout sur le recordset du formulaire, d'où une incrémentation de 2 en 2...

    J'ai un peut honte de moi... En fait à force de vouloir le faire marcher à tous prix, j'ai fais une bétise. Merci aussi Random, ton système me sera utile une prochaine fois je pense.

    Merci pour vos réponses.

    Marco.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Excusez moi de réouvrir ce sujet, mais en fait mon problème n'est pas du tout résolu.

    Voici le code que j'utilise pour ouvrir le formulaire en mode création :

    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
     
     
     
        StrOpenArgs = StrDroits & "¤" & StrRegion & "¤" & StrStatut & "¤" & StrUser & "¤" & "Création"
     
        stDocName = "FrmFormulaireIncident"
     
        DoCmd.OpenForm stDocName, acNormal, , , acFormAdd, , StrOpenArgs                          ', acFormEdit, acDialog
    '    DoCmd.OpenForm stDocName, acNormal, , , acFormEdit, , StrOpenArgs                         ', acFormEdit, acDialog
     
        If Not ModDroits.FctDroitsEnregistrement(StrDroits, StrRegion, StrStatut, StrUser) Then
            Exit Function
        End If
     
     
        Set rs = Form_FrmFormulaireIncident.Recordset
        rs.AddNew
    Quand je mets rs.addnew il insère un enregistrement et apparemment il lui faut aussi le openform en mode "add" pour bien marcher... Mais quand les deux sont là, il incrémente les enregistrements de 2 en 2.

    Comment faire ?

    Par avance merci.

    Marco.

Discussions similaires

  1. [access 2003/VBA] Identifier un Fichier ou un Dossier
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 13
    Dernier message: 22/07/2008, 15h35
  2. Réponses: 2
    Dernier message: 05/06/2006, 11h59
  3. Réponses: 12
    Dernier message: 30/05/2006, 15h57
  4. Réponses: 4
    Dernier message: 29/05/2006, 13h04
  5. Réponses: 7
    Dernier message: 26/05/2006, 14h14

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