Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 11h18   #1
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
Par défaut peut on récupérer un ID auto au moment de l'insertion

Bonjour,

Dsl pour le titre mais je ne savais pas quoi marquer d'autre.

J'ai un formulaire qui insert les données d'un tableau excel dans des tables.

Pour bien m'expliquer je vais prendre un exemple.
J'ai un tableau excel avec des nom en colonne "A".
Je voudrai pour chaque enregistrement qu'il prenne le nom (ca c'est facile) et qu'il regarde dans une table "Name" si ce nom existe.
Pour ca j'y arrive très bien avec le recordset.
La ou je coince c'est si il ne trouve pas le nom.
Il insert le nom dans la table (la requête sql ne me pose pas de problème) mais je voudrai récupérer l'ID (qui est automatique) sans devoir repasser par un recordset.

Bref ma question est: est-il possible de récupérer l'ID auto au moment de l'exécution de ma requête SQL?
Et si oui comment?

Je vous remercie de votre aide.
Si je ne suis pas assez claire dites le moi j'essayerai de mieux m'expliquer.
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 11h26   #2
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
heu!! je pense que ca ira!!!
Aussitôt après avoir créé se poste j'ai trouvé une solution.
Bon c'est en utilisant un recordset mais il ne parcoure pas toute ma table puisque je lui met en condition le nom que je recherche.

Voici mon code:

Code :
1
2
3
4
5
sSQL = "INSERT INTO [Poste_MOA] ([Nom_PMOA]) VALUES ('" & nPMOA & "')"
DoCmd.RunSQL (sSQL)
sSQL = "SELECT ID_PMOA FROM Poste_MOA WHERE Nom_PMOA= '" & nPMOA & "';"
Set myrst0 = db.OpenRecordset(sSQL)
idPMOA = myrst0.Fields("ID_PMOA").Value

Mais bon si il y a moyen de récupérer l'ID sans passer par le recordset je suis preneur.

merci
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 11h49   #3
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
bjr,

est-ce que la FAQ répond à la question :
http://access.developpez.com/faq/?pa...ds#LastNumAuto
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 15h35   #4
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
Super!!!
Merci bcp.
C'est presque ce que je cherchais mais il faut quand même faire un recordset pour avoir la valeur dans une variable. a moins que l'on puisse récupérer la valeur d'une requête faite en SQL.
Mais bon je suis C.. j'ai pas pensé qu'un simple dlookup suffirai dans mon cas.
Mais merci quand même, je trouve cela très pratique.
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 16h08   #5
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
Je profite du sujet pour te demander de m'aider.

Voila mon code:
Code :
1
2
3
sSQL = "INSERT INTO [Designation] ([Nom_Desig]) VALUES ('" & nDesig & "')"
DoCmd.RunSQL (sSQL)
idDesig = DLookup("[ID_Desig]", "Designation", "[ID_Desig]=MAX")
Ca marche mais pas quand la table est vide avant l'insert into.

Sais tu pourquoi?
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 17h25   #6
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
y a pas DMax plutôt?
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h04.


 
 
 
 
Partenaires

Hébergement Web