OVH Cloud OVH Cloud

requête paramétrée et vba

4 réponses
Avatar
Dominique MARTIN
Bonjour,
J'ai une requête paramétrée nommée "test" dont l'instruction SQL est :
PARAMETERS choix Text ( 255 );
SELECT LibelléMois.NumMois, LibelléMois.Mois
FROM LibelléMois
WHERE (((LibelléMois.Mois)=[choix]));

Je voudrais ouvrir un recordset sur test en mettant choix comme variable vba
dont la valeur serait déterminé par la procédure.

Comment faire ?

Merci pour votre aide
Dominique

4 réponses

Avatar
Pierre CFI [mvp]
bonjour
.....
bd.recordset("SELECT NumMois, Mois
FROM LibelléMois
WHERE Mois='" & choix & "'")
choix est texte
fait dans le simple
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"Dominique MARTIN" a écrit dans le message de news:

Bonjour,
J'ai une requête paramétrée nommée "test" dont l'instruction SQL est :
PARAMETERS choix Text ( 255 );
SELECT LibelléMois.NumMois, LibelléMois.Mois
FROM LibelléMois
WHERE (((LibelléMois.Mois)=[choix]));

Je voudrais ouvrir un recordset sur test en mettant choix comme variable vba
dont la valeur serait déterminé par la procédure.

Comment faire ?

Merci pour votre aide
Dominique



Avatar
Dominique MARTIN
Bonjour,
Merci pour ta réponse que je connaissais mais cela implique d'écrire tout le
SELECT qui peut être très long.
J'ai trouvé la solutions suivante :
Set db = CurrentDb
strSQL = db.QueryDefs("test").SQL
Set rst = db.OpenRecordset("PARAMETERS choix Text ( 255 )=" & mavar &
";" & strSQL, dbOpenDynaset)
où mavar est ma variable gérée en vba.

Merci
Dominique


bonjour
......
bd.recordset("SELECT NumMois, Mois
FROM LibelléMois
WHERE Mois='" & choix & "'")
choix est texte
fait dans le simple
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"Dominique MARTIN" a écrit dans le message de news:

Bonjour,
J'ai une requête paramétrée nommée "test" dont l'instruction SQL est :
PARAMETERS choix Text ( 255 );
SELECT LibelléMois.NumMois, LibelléMois.Mois
FROM LibelléMois
WHERE (((LibelléMois.Mois)=[choix]));

Je voudrais ouvrir un recordset sur test en mettant choix comme variable vba
dont la valeur serait déterminé par la procédure.

Comment faire ?

Merci pour votre aide
Dominique








Avatar
Xavier HUE
Bonjour Dominique,

Comme ceci (en DAO):

Dim Db As DAO.Database
Dim Qry As DAO.QueryDef
Dim Rst As DAO.Recordset

Set db = CurrentDb
Set Qry=CurrentDb.QueryDefs("Test")

'Initialiser le Paramètre
Qry.Parameters("choix") = ValeurDuParamètre

'Ouvrir le Recordset basé sur la requête
Set Rst = Qry.OpenRecordSet(DbOpenDynaset)

Cordialement.


Bonjour,
Merci pour ta réponse que je connaissais mais cela implique d'écrire tout le
SELECT qui peut être très long.
J'ai trouvé la solutions suivante :
Set db = CurrentDb
strSQL = db.QueryDefs("test").SQL
Set rst = db.OpenRecordset("PARAMETERS choix Text ( 255 )=" & mavar &
";" & strSQL, dbOpenDynaset)
où mavar est ma variable gérée en vba.

Merci
Dominique


bonjour
......
bd.recordset("SELECT NumMois, Mois
FROM LibelléMois
WHERE Mois='" & choix & "'")
choix est texte
fait dans le simple
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"Dominique MARTIN" a écrit dans le message de news:

Bonjour,
J'ai une requête paramétrée nommée "test" dont l'instruction SQL est :
PARAMETERS choix Text ( 255 );
SELECT LibelléMois.NumMois, LibelléMois.Mois
FROM LibelléMois
WHERE (((LibelléMois.Mois)=[choix]));

Je voudrais ouvrir un recordset sur test en mettant choix comme variable vba
dont la valeur serait déterminé par la procédure.

Comment faire ?

Merci pour votre aide
Dominique










Avatar
Dominique MARTIN
Bonjour Xavier,

Merci beaucoup

Dominique


Bonjour Dominique,

Comme ceci (en DAO):

Dim Db As DAO.Database
Dim Qry As DAO.QueryDef
Dim Rst As DAO.Recordset

Set db = CurrentDb
Set Qry=CurrentDb.QueryDefs("Test")

'Initialiser le Paramètre
Qry.Parameters("choix") = ValeurDuParamètre

'Ouvrir le Recordset basé sur la requête
Set Rst = Qry.OpenRecordSet(DbOpenDynaset)

Cordialement.


Bonjour,
Merci pour ta réponse que je connaissais mais cela implique d'écrire tout le
SELECT qui peut être très long.
J'ai trouvé la solutions suivante :
Set db = CurrentDb
strSQL = db.QueryDefs("test").SQL
Set rst = db.OpenRecordset("PARAMETERS choix Text ( 255 )=" & mavar &
";" & strSQL, dbOpenDynaset)
où mavar est ma variable gérée en vba.

Merci
Dominique


bonjour
......
bd.recordset("SELECT NumMois, Mois
FROM LibelléMois
WHERE Mois='" & choix & "'")
choix est texte
fait dans le simple
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/

"Dominique MARTIN" a écrit dans le message de news:

Bonjour,
J'ai une requête paramétrée nommée "test" dont l'instruction SQL est :
PARAMETERS choix Text ( 255 );
SELECT LibelléMois.NumMois, LibelléMois.Mois
FROM LibelléMois
WHERE (((LibelléMois.Mois)=[choix]));

Je voudrais ouvrir un recordset sur test en mettant choix comme variable vba
dont la valeur serait déterminé par la procédure.

Comment faire ?

Merci pour votre aide
Dominique