Variables vba et requête sql
Résolu
kenru64
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
kenru64 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
kenru64 Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
bonjours a tous :),
voila ma question : comment récupérer les résultats d'un requête sql et les placer dans des variables vba?
j'ai pourtant réussi avec le max d'un champ d'une table :
select1 = " SELECT MAX(N°Cde) as maxfac FROM Commandes "
Set rst = db.OpenRecordset(select1, dbOpenForwardOnly, dbReadOnly) 'Ouverture du recordset
numcom = rst!maxfac
mais je ne sais pas comment procéder lorsque la requête renvoie plusieurs réponses (oui oui un peu boulé),
par exemple les références de la commande numéro X comment placer ces différentes valeurs dans des variables?? (voir dans une seul string à découper par la suite)
j'ai tenter ca:
Set db = CurrentDb
num = N°Cde.Value
MsgBox (num)
select1 = "SELECT référence FROM détailcommandebis WHERE N°Cde=" & num & ""
Set rst = db.OpenRecordset(select1, dbOpenForwardOnly, dbReadOnly)
result = rst
MsgBox (rst)
et au niveau de la derniere instruction je tombe sur un magnifique "argument non valide"
si c'est évident pour quelqu'un je suis preneur :D
voila ma question : comment récupérer les résultats d'un requête sql et les placer dans des variables vba?
j'ai pourtant réussi avec le max d'un champ d'une table :
select1 = " SELECT MAX(N°Cde) as maxfac FROM Commandes "
Set rst = db.OpenRecordset(select1, dbOpenForwardOnly, dbReadOnly) 'Ouverture du recordset
numcom = rst!maxfac
mais je ne sais pas comment procéder lorsque la requête renvoie plusieurs réponses (oui oui un peu boulé),
par exemple les références de la commande numéro X comment placer ces différentes valeurs dans des variables?? (voir dans une seul string à découper par la suite)
j'ai tenter ca:
Set db = CurrentDb
num = N°Cde.Value
MsgBox (num)
select1 = "SELECT référence FROM détailcommandebis WHERE N°Cde=" & num & ""
Set rst = db.OpenRecordset(select1, dbOpenForwardOnly, dbReadOnly)
result = rst
MsgBox (rst)
et au niveau de la derniere instruction je tombe sur un magnifique "argument non valide"
si c'est évident pour quelqu'un je suis preneur :D
A voir également:
- Variables vba et requête sql
- Incompatibilité de type vba ✓ - Forum Programmation
- Logiciel sql - Télécharger - Bases de données
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba attendre 1 seconde ✓ - Forum VB / VBA
2 réponses
Bonjour,
Un recordset contient l'ensemble des tuples répondant à la requêtes.
Pour lire toutes les lignes et les stocker dans un tableau:
Bon courage
;o)
Un recordset contient l'ensemble des tuples répondant à la requêtes.
Pour lire toutes les lignes et les stocker dans un tableau:
Dim mTableau() Dim ind As Long rst.MoveFirst While Not rst.EOF Redim Preserve mTableau(ind) mTableau(ind) = rst.Fields(0) ind = ind + 1 rst.MoveNext Wend
Bon courage
;o)