Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser une requête existante

6 réponses
Avatar
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

6 réponses

Avatar
Raymond [mvp]
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" a écrit dans le message de
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




Avatar
Patrick
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]" wrote in message
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" a écrit dans le message de
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





Avatar
Raymond [mvp]
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" a écrit dans le message de
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


Avatar
Patrick
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]" wrote in message
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" a écrit dans le message de
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






Avatar
Raymond [mvp]
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" a écrit dans le message de
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


Avatar
Charles ERNST
parce que dans ce cas, il paut préciser :

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



"Patrick" a écrit dans le message de
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]" wrote in message
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" a écrit dans le message de
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