ben272
Messages postés36Date d'inscriptionlundi 11 octobre 2004StatutMembreDernière intervention12 mai 2007
-
19 juin 2006 à 09:44
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
20 juin 2006 à 01:03
Bonjour à tous, voilà j'ai un pb.j'ai crée une petite application de gestion de livre avec un ID.Mon pb est que je n'arrive pas à faire une insertion auto du champ ID.
Le truc c'est qu'il faudrait aller rechercher le dernier n° (ID) et faire + 1.
J'arrive bien a récuperer le n° dans une TextBox mais je sais pas faire +1 dans une autre TextBox
j'utilise un control ADODC pour faire la liaison avec ma BDD
Private Sub Text2_Change()
AdoId.Recordset.MoveLast
End Sub
Private Sub TxtNbr_Change()
Dim ID As Integer
ID = Val(Text2.Text) + 1
TxtNbr.Text = ID
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 19 juin 2006 à 11:43
salut,
d'une part, un ID auto-incrémenté, çà existe. c'est une option pour ton champ (donc dans ta base, pas par code).
si pour une raison quelconque tu veux le gérer toi-même (pourquoi pas...), alors regarde ton code :
quand TxtNbr change (donc jamais d'après le code indiqué, sauf en cas de modification manuelle), alors tu lis/crées l'ID suivant. et cet ID tu le mets dans TxtNbr, donc qui va re-déclencher l'évènement Change, qui va re-générer le même ID (puisque tu relis le Text2.Text), etc... et là tu pars dans une boucle infernale.... avec le même résultat, mais boucle quand même....
pour "Val", c'est ok. sinon ensuite il faudrait TxtNbr.Text = cstr(ID)
mais çà ne change rien : ton calcul ne doit pas être dans l'évènement Change
++
PCPT [AFCK]
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 19 juin 2006 à 11:45
ps : pour un nouveau (3 messages), çà fait vraiment plaisir de lire une question propre, bien expliquée, avec IDE OS etc indiqués.
fallait le dire...
donc là c'est moi qui te remercie de cette clareté
++
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 19 juin 2006 à 18:56
salut,
je n'ai jamais géré comme çà...
lors de la création, la base a été placée à un endroit spécifié. tu as access?
je viens d'essayer, base7 doit correspondre à Access97 (que tu peux convertir normalement sans altérer le code).
si tu as access, je pourrai t'indiquer (j'ai Access 2000). sinon beh... va falloir chercher^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 19 juin 2006 à 22:38
ok. je te montre la démarche en temps réel....
access -> nouvelle base "bd1.mdb" sur le bureau (rappel : sous Access 2000)
onglet table -> doucle click sur "Créer une table en mode création"
premier champ "ID_Tst"
2e champ "Lib_Tst"
je sélectionne le 1er champ -> click droit / Clé primaire
Fermer -> voulez-vous enregistrer OUI : "Table_Tst"
les 2 champs ont donc : Type de données "Texte"
je la ré-ouvre en mode création, je sélectionne le type de données du champ "ID_Tst", la zone de texte se transfome en combo dans lequel je sélectionne "NuméroAuto"
et voilà. par défaut dans la rubrique indéxé il est en "Oui - Sans doublons", c'est parfait.
tu sais tout.
NB : j'ai par exemple 3 occurences
1 "truc"
2 "machin"
3 "bidule"
si je supprime 2, le nouveau ne sera pas 2 mais 4. (un ID supprimé n'est plus utilisable)