Pb d'insertion auto

ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007 - 19 juin 2006 à 09:44
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Derniè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

Qui pourrait m'aider ???

config:
VB6
Xp pro sp2
AMD 2700+ 64bits
1024DDR

merci

8 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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é
++
0
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
19 juin 2006 à 18:28
Merci bcp. Mais mnt je fais comment avec la base de donnée access MDB version7 pour inserer l'ID auto.

Jai crée la base de donnée vie le menu complement de VB6.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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^^
0

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

Posez votre question
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
19 juin 2006 à 21:05
Oui j'ai access (2003) sur le pc.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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)

++
PCPT   [AFCK]
0
ben272 Messages postés 36 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 12 mai 2007
20 juin 2006 à 00:37
Merci bcp pour ton aide, je vais pouvoir avancer un peu dans mon soft.

et longue vie à PCPT.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 juin 2006 à 01:03
 
pense à valider (réponse acceptée là où çà correspond)
bon courage
0
Rejoignez-nous