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

Requêtes et SQL. Discussion :

Comment créer un vrai numéro auto?


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut Comment créer un vrai numéro auto?
    Bonsoir,
    Comment incrémenter un numéro?

    Exemple:
    J'aimerais un champs qui s'incrémente automatiquement (Numéro Document), exemple 12000, je crée un nouveau document, donc 12001, je le supprime, et un cré un autre, le nouveau document devra porter le numéro 12001.

    J'ai bien essayé avec numéroauto, mais le problème est que lorsque je supprime un document, et en crée un autre le numéro d'incrément n'est plus comme dans mon exemple 12001, mais 12002.
    Existe t il une solution?
    Merci par avance

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

    Les solutions sont multiples, comme celle-ci Comment créer son propre numéroAuto ?, où en utilisant par exemple la fonction de domaine DMax pour récupérer le dernier numéro et incrémenté (tu trouveras des exemples sur le forum en faisant une recherche sur ce mot)

    Philippe

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonsoir et merci pour la réponse
    J'ai bien essayé de reprendre le code en exemple pour l'adapter à mon formulaire, mais comme je ne suis pas expert cela ne marche pas.

    Lorsque je saisie dans un enregistrement le champs "date", le champs "numéro de fex" affiche bien 13001.
    je ferme, puis réouvre mon formulaire pour saisir un autre enregistrement, lorsque je saisie la "date" le champs "numéro de fex" affiche 13001, et non pas 13002.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form_BeforeInsert(Cancel As Integer)
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(Me.RecordSource, dbOpenSnapshot)
    Me.Numéro_de_fex = 13000
       If rs.EOF Then
       Me.Numéro_de_fex = ""
       Else
       rs.MoveLast
       Me.Numéro_de_fex = Me.Numéro_de_fex + 1
       End If
    rs.Close
    Set rs = Nothing
    End Sub
    merci pour votre aide

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

    Le problème c'est que sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Numéro_de_fex = 13000
    tu initialise ton numéro, donc tu démarres toujours à 13 000

    Ce qu'il faut c'est récupérer la valeur du dernier numéro, par exemple la fonction de domaine DMax, comme je te l'ai indiquée.
    Tu trouveras des exemples d'utilisation sur le forum, et un tuto sur les fonctions de domaines (va voir les cours Access dans ma signature).

    Philippe

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Désolé de vous avoir fait perdre votre temps, je ne sais pas réaliser cette fonction, car je ne connais rien en VBA, tout au moins peu de chose.
    Je vais voir sur le forum "Requêtes et SQL", peut être trouverais je une aide.
    Merci encore

  6. #6
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 411
    Points : 239
    Points
    239
    Par défaut
    C'est bien de tenter à mettre sur pied cette procédure. Mais ce qui est très important est de retenir d'abord la logique à suivre:
    1. Il te faut d'abord détecter la plus grande valeur de ton champ à incrémenter (voir principalement l'utilisation des fonctions dmax ou max dans un recordset),
    2. Ensuite mettre sur pied maintenant ta stratégie d'incrémentation.

    j'espèce que ceci va te donner un peu de vigueur pour avancer. Ne te décourage pas, nous sommes là pour ça.
    bye
    La clé de la solution, vous l'avez. "Ce qui se concoit bien...................... et les mots pour le dire viennent aisement. Twamitotela sana

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form_BeforeInsert(Cancel As Integer)
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(Me.RecordSource, dbOpenSnapshot)
    Me.Numéro_de_fex = DMax("[Numéro de fex]", "FEX")
       If rs.EOF Then
       Me.Numéro_de_fex = ""
       Else
       rs.MoveLast
       Me.Numéro_de_fex = Me.Numéro_de_fex + 1
       End If
    rs.Close
    Set rs = Nothing
    End Sub
    Ca marche!

    Merci

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

Discussions similaires

  1. Comment créer une ComboBox avec auto-completion ?
    Par padre.cedano dans le forum JavaFX
    Réponses: 9
    Dernier message: 04/09/2014, 09h19
  2. Comment créer une clé primaire auto incrémentée?
    Par lolymeupy dans le forum PowerAMC
    Réponses: 10
    Dernier message: 26/11/2013, 16h50
  3. [AC-2003] Comment Creér un SGBD "Gestion Auto-école" Sous Access
    Par taha.atm dans le forum Modélisation
    Réponses: 1
    Dernier message: 13/05/2011, 13h52
  4. [Firebird] Comment créer un champ auto incrémenté ?
    Par jojo86 dans le forum Bases de données
    Réponses: 17
    Dernier message: 28/01/2008, 00h17
  5. Comment faire un numéro auto??
    Par the_new dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/03/2005, 16h49

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