[AC2010] Créer un champ qui s'incrémente

Anonymous38 Messages postés 24 Statut Membre -  
 sala_sito -
Bonjour, j'ai créé des formulaires d'ajout dans ma base de données (qui sont enfait les formulaires basiques d'Access associé à une table).

Mais j'aimerai que le champ Référence de chaque table s'incrémente automatiquement à chaque ajout d'un nouvel enregistrement.

J'ai donc essayé de créer un bouton qui permette de générer une référence de la forme : "Ref"+nombre incrémenté

Par exemple : Ref100 puis à l'enregistrement suivant Ref101

Voici mon code qui lève l'erreur Object required sur la partie en gras ...

Private Sub Command48_Click()
Dim nb As Integer
Dim nbr As Integer
Set nb = 100
nbr = nb + 1
Title.Value = "Ref" & nb
nb = nbr
End Sub


Je ne comprend pas du tout cette erreur donc si quelqu'un peut m'aider à la corriger ou (mieux) si vous avez une meilleure solution à proposer à mon problème je vous en serai très très reconnaissant !

D'avance merci pour aide précieuse et si vous avez besoin de précisions n'hésitez surtout pas ;)

7 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Set nb = 100
    Enlevez le Set

    champ Référence de chaque table s'incrémente automatiquement

    Vous pouvez definir le champ en NumeroAuto et Format "Ref"0000

    Bonne suite
    1
  2. Anonymous38 Messages postés 24 Statut Membre
     
    Merci pour votre aide, mais en definissant le champ en NumeroAuto et Format "Ref"0000 ne marche pas :

    En effet, Ref000 s'affiche sur le champ mais si je clique dessus il devient un simple numéro et si j'appuye sur le bouton nouveau pour entrer un nouvel enrgistrement, le champ est rempli et verrouillé avec la valeur : (New) qui devient ensuite un numéro...

    Donc avec le numéro auto le format n'est pas appliqué correctement ...
    0
  3. Anonymous38 Messages postés 24 Statut Membre
     
    Finalement avec ce code :

    Private Sub Command48_Click()
    Dim nb As Integer
    Dim nbr As Integer
    nb = 100
    nbr = nb + 1
    Title.Value = "Ref" & nbr
    nb = nbr
    End Sub
    


    Mon seul problème vient du fait que la valeur est toujours Ref101 alors que j'aimerais que la valeur 101 soit sauvegardée et que la prochaine fois que je clique la valeur affichée soit Ref102 donc si quelqu'un pouvais m'aider pour ce petit détail ça serait parfait.

    D'avance merci.
    0
  4. Utilisateur anonyme
     
    Bonjour

    Private Sub Command48_Click()
      Static nb 
      if IsEmpty(nb) then nb = 100
      Title.Value = "Ref" & nb
      nb = nb+1
    End Sub


    Avec "static" la variable garde sa valeur d'un appel à l'autre
    Mais elle est quand même réinitialisée en cas d'initialisation de l'application
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,
    Si vous tenez absolument a proceder de cette facon, pour demarrer table vide:
    il faut tester le eof et initialiser votre 1er numero a ref100.
    Ensuite a chaque nouveau enregistrement, il faut aller lire le dernier champ "ref" enregistre et calculer le suivant.

    Bon courage
    0
  7. Anonymous38 Messages postés 24 Statut Membre
     
    Merci à vous deux, je testerai ça demain et vous tiendrai au courant :)
    0
  8. sala_sito
     
    slt a tous j'ai a peu pres le meme probleme alors si kel1 peut nous aider
    0