OVH Cloud OVH Cloud

Création de requête en VBA

2 réponses
Avatar
Jean Marie VIGNEAUD
Bonjour,

Petite question sur la création de requête via VBA.

Le code ci-dessous me permet de créer ma requête.


=======================================
Dim monsql As String


monsql = " SELECT BASI_IUS.SRV_NUM_SRV, BASI_IUS.NUM_TIERS,
BASI_IUS.ADP_NOM1, BASI_IUS.ADP_NOM2, BASI_IUS.ADP_COMP_LOC,
BASI_IUS.ADP_VOIE, BASI_IUS.ADP_COMMUNE, BASI_IUS.E_MAIL INTO T3000 FROM
BASI_IUS WHERE (((BASI_IUS.SRV_NUM_SRV)=3000"));"

DoCmd.RunSQL monsql

Set testQuerry = CurrentDb.CreateQueryDef("Test", "select * from T3000" )
DoCmd.OpenQuery "Test", acViewDesign

=======================================

Lorsque j'ouvre ensuite la requête en acViewDesign, je fais glisser les
champs en bas pour faire une projection.

Lorsqu'ensuite j'affiche la requête, je me retrouve avec tous les champs
affichés et non seulement avec ceux que j'ai choisi préalablement.

Quid ?

Merci de votre aide.

Jean-Marie

2 réponses

Avatar
3stone
Salut,

"Jean Marie VIGNEAUD"
|
| monsql = " SELECT BASI_IUS.SRV_NUM_SRV, BASI_IUS.NUM_TIERS,
| BASI_IUS.ADP_NOM1, BASI_IUS.ADP_NOM2, BASI_IUS.ADP_COMP_LOC,
| BASI_IUS.ADP_VOIE, BASI_IUS.ADP_COMMUNE, BASI_IUS.E_MAIL INTO T3000 FROM
| BASI_IUS WHERE (((BASI_IUS.SRV_NUM_SRV)000"));"
|


Coller dans une requete (mode SQL) elle fait bien son boulot ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Eric
Bonjour,

Le fait que tu demandes un
Select * from ...
affecte la valeur Oui la propriété Tous les champs (OutputAllFields) de
la requête. Cette propriété OutputAllFields reste toujours à Oui même si
tu fais une projection, ensuite en mode Design, de seulement quelques
champs.
Dans l'aide, il est indiqué : 'vous ne pouvez paramétrer cette propriété
qu'à l'aide de la feuille des propriétés de la requête'.

Peut-être qu'en VBA, en parcourant la collection des propriétés de la
requête, il doit être possible de modifier cette dernière mais je n'en
suis pas sur.

Autre solution mais qui peut ne pas convenir à ta problématique :
définir les champs à la place de * en sql et ouvrir en mode affichage
directement.
--
A+
Eric
Un petit tour ici : http://users.skynet.be/mpfa/
Accès aux archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,

Petite question sur la création de requête via VBA.

Le code ci-dessous me permet de créer ma requête.


====================================== > Dim monsql As String


monsql = " SELECT BASI_IUS.SRV_NUM_SRV, BASI_IUS.NUM_TIERS,
BASI_IUS.ADP_NOM1, BASI_IUS.ADP_NOM2, BASI_IUS.ADP_COMP_LOC,
BASI_IUS.ADP_VOIE, BASI_IUS.ADP_COMMUNE, BASI_IUS.E_MAIL INTO T3000 FROM
BASI_IUS WHERE (((BASI_IUS.SRV_NUM_SRV)000"));"

DoCmd.RunSQL monsql

Set testQuerry = CurrentDb.CreateQueryDef("Test", "select * from T3000" )
DoCmd.OpenQuery "Test", acViewDesign

====================================== >
Lorsque j'ouvre ensuite la requête en acViewDesign, je fais glisser les
champs en bas pour faire une projection.

Lorsqu'ensuite j'affiche la requête, je me retrouve avec tous les champs
affichés et non seulement avec ceux que j'ai choisi préalablement.

Quid ?

Merci de votre aide.

Jean-Marie