[VBA] Requete SQL

Résolu/Fermé
tof85 Messages postés 13 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 4 juillet 2008 - 11 févr. 2008 à 16:26
tof85 Messages postés 13 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 4 juillet 2008 - 11 févr. 2008 à 16:49
Bonjour,
j'ai un formulaire sous access, dans ce formulaire j'ai une liste déroulante contenant deux champs (nom et prénom) fesant référence à une table personne.
J'ai un bouton valider qui permet d'ajouter le nom de la personne dans une autre table.
Je fais une requete pour récupérer le nom de la personne, car avec la liste déroulante je récupère que son id.

Le problème c'est que dans la deuxième table je ne recupère pas le nom, mais la requete (select....).

Voici le code :

Private Sub Commande2_Click()
'ajoute un nouvel enregistrement
Dim db As Database
Dim rs As Recordset
Dim num As String
Dim req As String

'ouverture de la BD
Set db = CurrentDb

'ouverture du recordSet
Set rs = db.OpenRecordset("Test")

num = Me!nom

req = "select nom from personne where id= " & num & ";"

rs.AddNew

rs!champ = req

rs.Update
rs.Close
MsgBox ("Ajout effectué")

End Sub


Merci d'avance

2 réponses

blux Messages postés 26490 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 novembre 2024 3 316
11 févr. 2008 à 16:38
Salut,

c'est normal que ça renvoie le texte de la requête, tu ne fais qu'affecter une chaine dans une variable.
A aucun moment, tu ne dis à ACCESS d'exécuter la requête contenue dans ta variable.

Quand tu veux un résultat simple, utilise la fonction dlookup, comme ça :
Req = DLookUp("nom","personne", "id = " & num)
C'est bien plus simple, et ça ne déclare pas des tonnes de variables qu'il faut manipuler
0
tof85 Messages postés 13 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 4 juillet 2008
11 févr. 2008 à 16:49
Oui je voyais bien qu'il me fallait qqch pour executer la requete, mais je ne connaissais pas la fonction.

Merci beaucoup en tout cas à toi Blux, ça fonctionne très bien.
0