Recup la clef autoincrémenté de l'enregistrement en cours [Access][VBA] - SQL/NoSQL - Programmation
Marsh Posté le 01-08-2003 à 16:04:50
Bah, récupère simplement le max de ta clé : il doit correspondre au dernier enregistrement non ?
Marsh Posté le 01-08-2003 à 16:07:38
Ué mais le pbm c'est que je trouve que ca fait un peu bidouillage... Si par exemple yavait eut un autre enregistrement entre temps, ca ne serait plus le bon... Bon, ya quasiment aucune chance, d'autant plus qu'il n'y aura pas bcp de personnes sur la base, mais j'aimerais bien avoir une méthode infaillible si ca existe...
Marsh Posté le 04-08-2003 à 12:34:29
latruffe a écrit : Bah, récupère simplement le max de ta clé : il doit correspondre au dernier enregistrement non ? |
en Access ce n'est pas forcément un autoincrement qui est utilisé
pour répondre à la question, et si ma mémoire est bonne, le mécanisme ne fonctionne qu'avec Access 2000 et DAO 3.6 au minimum.
Marsh Posté le 04-08-2003 à 13:09:38
Bah il a dit que ça clé primaire était en auto(number), non ?
Marsh Posté le 04-08-2003 à 13:20:32
Disons qu'en Access t'as l'autonumber par incrémentation mais aussi par choix aléatoire d'un ID (unique bien entendu). Cela dit je connais personne qui utilise la seconde possibilité.
edit: la méthode du max() n'est pas valable si la base est accédée par plusieurs utilisateurs -> ça risque de se viander.
Marsh Posté le 04-08-2003 à 13:53:57
drasche a écrit : Disons qu'en Access t'as l'autonumber par incrémentation mais aussi par choix aléatoire d'un ID (unique bien entendu). Cela dit je connais personne qui utilise la seconde possibilité. |
Exact
Pour la méthode du max, je suis d'accord (même si ile est rare que 50 personnes travaillent en même temps sur un base de donnée Access).
Sinon, je trouve que les techniques proposées dans le site indiqué dans le premier post sont pas trop mauvaise (utilisation d'un nombre aléatoire et select via ce nombre)...
Marsh Posté le 04-08-2003 à 14:30:58
Mais c'est vraiment etrange qu'il n'y ai rien de prévu et qu'il soit necessaire de faire un enregistrement "bidon" afin de le retrouver tout de suite puis de le rectifier...
J'aurais voulu trouver un truc, comme dire... "plus propre", meme si les methodes ne sont pas des trucs affreuses pour autant...
Marsh Posté le 04-08-2003 à 15:29:04
une alternative qui marche sur la plupart des bases de données est de lancer un ordre INSERT tout en SQL et de faire un SELECT @@IDENTITY; ensuite pour récupérer la valeur du champ autonumbered, mais ça se fait indépendamment de ton recordset bien entendu
Concernant le fait que ton implémentation ne marche pas, je dirais que c'est un "problème" connu mais non résolvable en gardant ton implémentation actuelle (sinon de passer à Access 2000 et DAO 3.6, ou ADO)
Marsh Posté le 04-08-2003 à 16:12:34
Bon bah je crois que je vais opter pour une solution de semi bricolage alors...
Mici pour les réponses !
Marsh Posté le 01-08-2003 à 15:57:40
J'ajoute mes enregistrement danss les tables du bel Access (:ange à l'aide de cette methode : (la clef primaire de la table est en Auto)
Et j'aimerais donc suite à ca recuperer le numéro de la clef qu'il a généré... Il doit bien y avoir un moyen pour qu'il me retourne ca non ? (car j'aimerais eviter de bidouiller en allant simplement recuperer le numero de la clef du dernier enregistrement de la table... )
Voilou, si quelqu'un a une idée, mercÿte.
(ah vi, et ya vaguement ca sur le sujet, mais je n'y ai po trouvé mon bonheur... )