Pb avec SELECT sous Access
steph_p
-
basshero816 Messages postés 115 Statut Membre -
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
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
A voir également:
- Pb avec SELECT sous Access
- Access runtime ✓ - Forum Access
- Please select boot device - Forum Matériel & Système
- Exemple base de données access à télécharger gratuit - Forum Access
- Access appdata - Guide
- Acer quick access - Forum logiciel systeme
5 réponses
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!
@+
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!
@+
Salut !
Merci pour le coup de main.
Pour transformer le recordSet en texte, je peux faire comment ?
Merci pour l'aide
Merci pour le coup de main.
Pour transformer le recordSet en texte, je peux faire comment ?
Merci pour l'aide
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 :)
Merci pour ton aide :)
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é...
@+
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é...
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question