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

Fermé
Anonymous38 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 24 mai 2012 - 23 mai 2012 à 17:21
 sala_sito - 22 juil. 2012 à 02:11
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 ;)



A voir également:

7 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
24 mai 2012 à 10:40
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
Anonymous38 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 24 mai 2012
24 mai 2012 à 12:01
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
Anonymous38 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 24 mai 2012
24 mai 2012 à 13:43
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
Utilisateur anonyme
24 mai 2012 à 15:20
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
24 mai 2012 à 15:45
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
Anonymous38 Messages postés 18 Date d'inscription jeudi 19 avril 2012 Statut Membre Dernière intervention 24 mai 2012
24 mai 2012 à 16:57
Merci à vous deux, je testerai ça demain et vous tiendrai au courant :)
0
slt a tous j'ai a peu pres le meme probleme alors si kel1 peut nous aider
0