OVH Cloud OVH Cloud

Requete selection

6 réponses
Avatar
debdrai
Salut,

J'ai embete tout le monde cette semaine avec les requetes Action (que
je maitrise maintenant relativement bien, merci beaucoup), mais me
voila à présent confronté à la dernière que je n'ai pas essayé: la
requete Selection ! Et voui, encore une qui ne veut pas marcher. J'ai
testé les conseils de tous ceux qui ont abordé le sujet dans le groupe
mais sans succès. En bref, comment exécuter cette requete en VBA ? Je
pars d'une liste déroulante dans laquelle mon usager sélectionne un
nom, et je veux qu'Access sélectionne et affiche tous les
enregistrements d'une table contenant ce nom. Voici mon dernier essai
de code:

RqLidar = "SELECT tblLIDAR.* FROM tblLIDAR WHERE Fichier = '" &
Form_frmReqLidar.lstFichier.Value & "';"

Set Rs = CurrentDb.OpenRecordset("RqLidar")
Do Until Rs.EOF
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing

J'ajoute que j'ai crée ma requete dans le générateur de requete et
qu'elle, ELLE fonctionne ! Mais je veux qu'elle s'execute à partir
d'un formulaire après choix dans la liste et clic sur un bouton. J'ai
donc aussi essayé de prendre le code ci-dessus et de remplacer le
"RqLidar" de la ligne Set Rs..... par le nom de la requete crée dans
le générateur de requete mais sans succès.

A l'aide ! Merci ! Deb

6 réponses

Avatar
Raymond [mvp]
Bonsoir

essaie ce modèle:
RqLidar = "SELECT tblLIDAR.* FROM tblLIDAR WHERE tblLIDAR.Fichier = '" &
Me.lstFichier & "';"

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"La p'tite Deb" a écrit dans le message de
news:
Salut,

J'ai embete tout le monde cette semaine avec les requetes Action (que
je maitrise maintenant relativement bien, merci beaucoup), mais me
voila à présent confronté à la dernière que je n'ai pas essayé: la
requete Selection ! Et voui, encore une qui ne veut pas marcher. J'ai
testé les conseils de tous ceux qui ont abordé le sujet dans le groupe
mais sans succès. En bref, comment exécuter cette requete en VBA ? Je
pars d'une liste déroulante dans laquelle mon usager sélectionne un
nom, et je veux qu'Access sélectionne et affiche tous les
enregistrements d'une table contenant ce nom. Voici mon dernier essai
de code:

RqLidar = "SELECT tblLIDAR.* FROM tblLIDAR WHERE Fichier = '" &
Form_frmReqLidar.lstFichier.Value & "';"

Set Rs = CurrentDb.OpenRecordset("RqLidar")
Do Until Rs.EOF
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing

J'ajoute que j'ai crée ma requete dans le générateur de requete et
qu'elle, ELLE fonctionne ! Mais je veux qu'elle s'execute à partir
d'un formulaire après choix dans la liste et clic sur un bouton. J'ai
donc aussi essayé de prendre le code ci-dessus et de remplacer le
"RqLidar" de la ligne Set Rs..... par le nom de la requete crée dans
le générateur de requete mais sans succès.

A l'aide ! Merci ! Deb


Avatar
Michel Walsh
Salut,


Spécifier la propriété RowSource d'une zone de liste par la chaîne de
la dite requête:


Me.MaListe.RowSource= "SELECT ... "


En effet, il n'y a pas "transformation" des données, seulement
"repérage". Le résultat est donc à être affiché quelque part... un zone de
liste est parfaite. On peut également faire avec un formulaire, dans ce cas,
la propriété est RecordSource, mais là, problème supplémentaire, il faut
associer les champs, de la requête, aux controles, du formulaire, via leur
propriété ControlSource. Donc, vachement plus simple d'utiliser la zone de
liste. S'assurer que le nombre de colonnes que la liste pense devoir
afficher correspond au nombre de champs sélectionnés dans la requête.



Espérant être utile,
Vanderghast, Access MVP


"La p'tite Deb" wrote in message
news:
Salut,

J'ai embete tout le monde cette semaine avec les requetes Action (que
je maitrise maintenant relativement bien, merci beaucoup), mais me
voila à présent confronté à la dernière que je n'ai pas essayé: la
requete Selection ! Et voui, encore une qui ne veut pas marcher. J'ai
testé les conseils de tous ceux qui ont abordé le sujet dans le groupe
mais sans succès. En bref, comment exécuter cette requete en VBA ? Je
pars d'une liste déroulante dans laquelle mon usager sélectionne un
nom, et je veux qu'Access sélectionne et affiche tous les
enregistrements d'une table contenant ce nom. Voici mon dernier essai
de code:

RqLidar = "SELECT tblLIDAR.* FROM tblLIDAR WHERE Fichier = '" &
Form_frmReqLidar.lstFichier.Value & "';"

Set Rs = CurrentDb.OpenRecordset("RqLidar")
Do Until Rs.EOF
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing

J'ajoute que j'ai crée ma requete dans le générateur de requete et
qu'elle, ELLE fonctionne ! Mais je veux qu'elle s'execute à partir
d'un formulaire après choix dans la liste et clic sur un bouton. J'ai
donc aussi essayé de prendre le code ci-dessus et de remplacer le
"RqLidar" de la ligne Set Rs..... par le nom de la requete crée dans
le générateur de requete mais sans succès.

A l'aide ! Merci ! Deb


Avatar
debdrai
Salut les amis,

J'ai bien lu vos conseils et tester à nouveau mon code. Sans succès.
C'est à dire que rien ne se passe. Du moins je le pensais. Puis j'ai
eu un doute. J'ai réalisé qu'il n'y a rien dans mon code qui dit à
Access de m'afficher le résultat de ma sélection, comme il le fait
quand on crée une requete par le générateur de requete. En bref, je
voudrais qu'une fois le nom de fichier choisi dans ma zone de liste,
on clique sur le bouton et qu'un nouveau formulaire apparaissent en
mode feuille de données et m'affiche les enregistrements sélectionnés
par ma requete... Savez-vous comment faire cela ?

Encore merci. Deb
Avatar
Michel Walsh
Salut,


Ouvrir Northwind.

Faire un nouveau formulaire, non basé sur quelque table ou requête que
ce soit. Laisser le formulaire ouvert en mode design.

Y ajouter une zone de liste, list0. La faire suffisamment large et
haute.

Ajouter un bouton de commande au formulaire.

Derrière la procédure événementielle onClick du bouton, ajouter le code
pour obtenir quelque chose comme:

---------------------------
Private Sub Command2_Click()
Me.List0.RowSource = "SELECT CategoryName, Description FROM Categories"
Me.List0.ColumnCount = 2
End Sub
-----------------------------

Ouvrir le formulaire en mode normal (vue). La liste ne devrait rien
afficher. Cliquer sur le bouton, la liste devrait se remplir selon
l'information fournie dans la chaîne RowSource.

Il s'uffit de change RowSource pour afficher d'autres résultats, par
exemple

Me.List0.RowSource = "SELECT CategoryName, Description FROM Categories WHERE
CategoryID>3"

affichera que les enregistrement où Category>3.


Cela ne fonctionne pas chez-vous... ?




Vanderghast, Access MVP



"La p'tite Deb" wrote in message
news:
Salut les amis,

J'ai bien lu vos conseils et tester à nouveau mon code. Sans succès.
C'est à dire que rien ne se passe. Du moins je le pensais. Puis j'ai
eu un doute. J'ai réalisé qu'il n'y a rien dans mon code qui dit à
Access de m'afficher le résultat de ma sélection, comme il le fait
quand on crée une requete par le générateur de requete. En bref, je
voudrais qu'une fois le nom de fichier choisi dans ma zone de liste,
on clique sur le bouton et qu'un nouveau formulaire apparaissent en
mode feuille de données et m'affiche les enregistrements sélectionnés
par ma requete... Savez-vous comment faire cela ?

Encore merci. Deb


Avatar
debdrai
Salut...

Merci beaucoup de votre reponse mais je crains de m'etre mal exprimé.
J'aimerai que le résultat de ma requete, en d'autres termes les
enregistrements sélectionnés dans une table, m'apparaissent dans un
nouveau formulaire, idéalement en mode feuille de données (comme le
résultat d'une requete générée avec l'assistant requete), sinon dans
un autre mode mais pas sous forme de liste, sous forme de tableau
plutot...

Deb
Avatar
Michel Walsh
Salut,


C'est la même chose, sauf qu'on utilisera Me.Recordsource pour capturer
la chaîne SQL, ... mais ... on devra, pour une vue en continue, par exemple,
en plus, assigner individuellement chaque controle à un champ:

Me.Control1.ControlSource= "Champ1"

et ce, pour chaque champ de la requête... Généralement, on peut faire ces
manipulations dans la procédure onOpen d'un formulaire qu'on est en train
d'ouvrir (évidemment, pas dans un formulaire déjà ouvert, le onOpen ne se
redéclenche pas). Il va s'en dire que c'est beaucoup plus périlleux que
d'afficher la même chose simplement dans une zone de liste.



Espérant être utile,
Vanderghast, Access MVP


"La p'tite Deb" wrote in message
news:
Salut...

Merci beaucoup de votre reponse mais je crains de m'etre mal exprimé.
J'aimerai que le résultat de ma requete, en d'autres termes les
enregistrements sélectionnés dans une table, m'apparaissent dans un
nouveau formulaire, idéalement en mode feuille de données (comme le
résultat d'une requete générée avec l'assistant requete), sinon dans
un autre mode mais pas sous forme de liste, sous forme de tableau
plutot...

Deb