Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1016 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access][VBA]Recup la clef autoincrémenté de l'enregistrement en cours

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access][VBA]Recup la clef autoincrémenté de l'enregistrement en cours

n°474693
Jesus Army
Allez voir là bas si j'y suis
Posté le 01-08-2003 à 15:57:40  profilanswer
 

:hello:
 
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)
 

Code :
  1. Dim Data as Database
  2. Dim RcSet_mat As Recordset
  3. Set data = CurrentDb
  4. Set RcSet = data.OpenRecordset("Nom_Table" )
  5. RcSet.AddNew
  6.    RcSet!Nom_Champs = ValeurDuChamps
  7. RcSet.Update


 
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. :jap:
 
(ah vi, et ya vaguement ca sur le sujet, mais je n'y ai po trouvé mon bonheur... :'()

mood
Publicité
Posté le 01-08-2003 à 15:57:40  profilanswer
 

n°474712
latruffe
Bdovore
Posté le 01-08-2003 à 16:04:50  profilanswer
 

Bah, récupère simplement le max de ta clé : il doit correspondre au dernier enregistrement non ?


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°474720
Jesus Army
Allez voir là bas si j'y suis
Posté le 01-08-2003 à 16:07:38  profilanswer
 

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... :)

n°476731
Jesus Army
Allez voir là bas si j'y suis
Posté le 04-08-2003 à 10:24:39  profilanswer
 

[:yoyoz]

n°476826
drasche
Posté le 04-08-2003 à 12:34:29  profilanswer
 

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é :non:
 
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.

n°476863
latruffe
Bdovore
Posté le 04-08-2003 à 13:09:38  profilanswer
 

Bah il a dit que ça clé primaire était en auto(number), non ?


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°476872
drasche
Posté le 04-08-2003 à 13:20:32  profilanswer
 

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.


Message édité par drasche le 04-08-2003 à 13:21:26
n°476928
latruffe
Bdovore
Posté le 04-08-2003 à 13:53:57  profilanswer
 

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é.
 
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.


 
Exact :jap:
 
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)...


Message édité par latruffe le 04-08-2003 à 15:16:41

---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°476964
Jesus Army
Allez voir là bas si j'y suis
Posté le 04-08-2003 à 14:30:58  profilanswer
 

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... :)

n°477042
drasche
Posté le 04-08-2003 à 15:29:04  profilanswer
 

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)

mood
Publicité
Posté le 04-08-2003 à 15:29:04  profilanswer
 

n°477153
Jesus Army
Allez voir là bas si j'y suis
Posté le 04-08-2003 à 16:12:34  profilanswer
 

Bon bah je crois que je vais opter pour une solution de semi bricolage alors... :/  
 
Mici pour les réponses ! :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access][VBA]Recup la clef autoincrémenté de l'enregistrement en cours

 

Sujets relatifs
[ACCESS][SQL] Questions sur des requêtes avec Group byACCESS | Probleme de date HELPPPP
[ACCESS]Questions sur la multi utilisation[SGBD] Cherche équivalent ('%query%') pour Access !!!
[VB6] Datagrid et ajout d'enregistrement via code[ACCESS] Affecter une valeur à un composant d'un formulaire
mot clef: typenamemot clef : explicit
access transformer un etat en pdf via vbVérifier si un enregistrement existe
Plus de sujets relatifs à : [Access][VBA]Recup la clef autoincrémenté de l'enregistrement en cours


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR