Pb avec SELECT sous Access

steph_p -  
basshero816 Messages postés 115 Statut Membre -
Bonjour,
Je voudrais exécuter une commande contenant "SELECT..." et récupérer le résultat de cette requête.
Voici mon code :
Private Sub Commande10_Click()
bla = "SELECT age FROM desc_age WHERE (num_collection =63)"
DoCmd.RunSQL (bla)

End Sub
L'erreur indiquée par le compilateur est la suivante ; "Une action Executer une commande SQL doit contenir une instruction SQL"
Merci d'avance pour votre grande aide

5 réponses

basshero816 Messages postés 115 Statut Membre 6
 
Salut,
Avec un DoCmd.RunSql (rq), tu dois forcément avoir une requête d'ajout, de modif ou de suppression, mais pas une requête de sélection.

La méthode est la suivante :

Dim sql As String
Dim rs As Recordset

sql = "SELECT age FROM desc_age WHERE (num_collection =63)"
Set rs = CurrentDb.OpenRecordset (sql)

Dans ce cas tu ouvres, dans le recordset, l'ensemble de tes enregistrements, que tu peux ensuite utiliser comme bon te semble!

@+
0
steph_p
 
Salut !
Merci pour le coup de main.
Pour transformer le recordSet en texte, je peux faire comment ?
Merci pour l'aide
0
steph_p
 
Le but est de récupérer cette vameur d'"âge" pour pouvoir ensuite l'insérer dans une autre requête SQL. De plus dans certains cas, j'aurais besoin de l'afficher dans une MessageBox pour signaler à l'utilisateur que cette valeur est abérante.
Merci pour ton aide :)
0
basshero816 Messages postés 115 Statut Membre 6
 
Ok.
Donc tu as effectué ta requête, ouvert ton recordset.
Pour en effectuer un traitement, ma démarche habituelle (mais non universelle) est la suivante :

Dim sql As String
Dim rs As Recordset

sql = "SELECT age FROM desc_age WHERE (num_collection =63)"
Set rs = CurrentDb.OpenRecordset (sql)

While rs.EOF <> True
--
-- Traitement
--
rs.MoveNext
End While

Ainsi, dans la boucle While, tu parcours chaque enregistrement de ton Select.
Pour récupérer la valeur de l'enregistrement en cours, tu n'as qu'à utiliser rs(0).

Si tu avais fait un "SELECT Table.Champ1, Table.Champ2, Table.Champ3 .... FROM Table....", tu aurais pu récupérer :

Champ1 dans rs(0)
Champ2 dans rs(1)
Champ3 dans rs(2)
etc...

En espérant t'avoir aidé...
@+
0

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

Posez votre question
basshero816 Messages postés 115 Statut Membre 6
 
Comment ça..?
Explique-toi, dans quel but..?
-1