Utiliser une requête existante

Le
Patrick
Bonjour,

Dans un traitement que je fais en VBA (dans le fichier Access), je souhaite
faire appel à une requête qui est sauvegardée dans la base.
Comment puis-je faire pour récupérer le résultat dans un objet ADO Recordset
sans écrire les SQL en entier dans le code ?

Merci pour votre aide.

--
Patrick
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #5370931
Bonjour.

je pense que tu dois pouvoir utiliser ceci:
Dim rst As New ADODB.Recordset
rst.Open "Requête1", CurrentProject.Connection, adOpenKeyset,
adLockOptimistic
Do Until rst.EOF
Debug.Print rst(3)
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
que tu adaptes à ton problème.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" news:
Bonjour,

Dans un traitement que je fais en VBA (dans le fichier Access), je
souhaite

faire appel à une requête qui est sauvegardée dans la base.
Comment puis-je faire pour récupérer le résultat dans un objet ADO
Recordset

sans écrire les SQL en entier dans le code ?

Merci pour votre aide.

--
Patrick




Patrick
Le #5370911
Bonjour,

Merci pour ta réponse. Mais quand j'utilise le nom de la requête il y a un
message d'erreur :
Invalid SQL statement; expected DELETE, INSERT, PROCEDURE, SELECT, or
UPDATE.

Qu'en dis-tu ?

Le seul moyen que j'ai trouvé pour contourner ce problème est d'utiliser un
objet Command.

Merci encore.

--
Patrick


"Raymond [mvp]" news:%23J%
Bonjour.

je pense que tu dois pouvoir utiliser ceci:
Dim rst As New ADODB.Recordset
rst.Open "Requête1", CurrentProject.Connection, adOpenKeyset,
adLockOptimistic
Do Until rst.EOF
Debug.Print rst(3)
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
que tu adaptes à ton problème.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" news:
Bonjour,

Dans un traitement que je fais en VBA (dans le fichier Access), je
souhaite

faire appel à une requête qui est sauvegardée dans la base.
Comment puis-je faire pour récupérer le résultat dans un objet ADO
Recordset

sans écrire les SQL en entier dans le code ?

Merci pour votre aide.

--
Patrick





Raymond [mvp]
Le #5370901
Faudrait préciser car d'après ta question il s'agissait d'une requête
sélection. Quel est le sql de ta requête ? et pourquoi veux-tu passer
impérativement par ado ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" news:
Bonjour,

Merci pour ta réponse. Mais quand j'utilise le nom de la requête il y a un
message d'erreur :
Invalid SQL statement; expected DELETE, INSERT, PROCEDURE, SELECT, or
UPDATE.

Qu'en dis-tu ?

Le seul moyen que j'ai trouvé pour contourner ce problème est d'utiliser
un

objet Command.

Merci encore.

--
Patrick


Patrick
Le #5370861
Oui, c'est une requête Sélection. Je passe par ADO parce que je garde en
mémoire le résultat de la requête. Les données me servent de variables pour
un traitement ultérieur. En fait, l'utilisateur sélectionne des infos dans
une liste et pour chacun d'eux j'ajoute un enregistrement dans une table.
C'est peut-être un peu compliqué pour toi mais je n'ai trouvé d'autres
solutions.

Quelle que soit ton aide, je t'en remercie.

--
Patrick

"Raymond [mvp]" news:
Faudrait préciser car d'après ta question il s'agissait d'une requête
sélection. Quel est le sql de ta requête ? et pourquoi veux-tu passer
impérativement par ado ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" news:
Bonjour,

Merci pour ta réponse. Mais quand j'utilise le nom de la requête il y a
un


message d'erreur :
Invalid SQL statement; expected DELETE, INSERT, PROCEDURE, SELECT, or
UPDATE.

Qu'en dis-tu ?

Le seul moyen que j'ai trouvé pour contourner ce problème est d'utiliser
un

objet Command.

Merci encore.

--
Patrick






Raymond [mvp]
Le #5370841
Ce que je t'ai proposé marche très bien en requête sélection.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" news:
Oui, c'est une requête Sélection. Je passe par ADO parce que je garde en
mémoire le résultat de la requête. Les données me servent de variables
pour

un traitement ultérieur. En fait, l'utilisateur sélectionne des infos dans
une liste et pour chacun d'eux j'ajoute un enregistrement dans une table.
C'est peut-être un peu compliqué pour toi mais je n'ai trouvé d'autres
solutions.

Quelle que soit ton aide, je t'en remercie.

--
Patrick


Charles ERNST
Le #5370011
parce que dans ce cas, il paut préciser :

rst.Open "Requête1", CurrentProject.Connection, adOpenKeyset,
adLockOptimistic, AdCmdStoredProc



"Patrick" news:
Bonjour,

Merci pour ta réponse. Mais quand j'utilise le nom de la requête il y a un
message d'erreur :
Invalid SQL statement; expected DELETE, INSERT, PROCEDURE, SELECT, or
UPDATE.

Qu'en dis-tu ?

Le seul moyen que j'ai trouvé pour contourner ce problème est d'utiliser
un

objet Command.

Merci encore.

--
Patrick


"Raymond [mvp]" news:%23J%
Bonjour.

je pense que tu dois pouvoir utiliser ceci:
Dim rst As New ADODB.Recordset
rst.Open "Requête1", CurrentProject.Connection, adOpenKeyset,
adLockOptimistic
Do Until rst.EOF
Debug.Print rst(3)
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
que tu adaptes à ton problème.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" news:
Bonjour,

Dans un traitement que je fais en VBA (dans le fichier Access), je
souhaite

faire appel à une requête qui est sauvegardée dans la base.
Comment puis-je faire pour récupérer le résultat dans un objet ADO
Recordset

sans écrire les SQL en entier dans le code ?

Merci pour votre aide.

--
Patrick









Publicité
Poster une réponse
Anonyme