OVH Cloud OVH Cloud

liste de requète

15 réponses
Avatar
Erwan
Bonjour,=20

Sur un formuliare, dans une zone de liste , je veux faire=20
apparaitre toutes les requ=EAtes dont le nom commence=20
par "Restit_" afin de pouvoir les lancer directemnt =E0=20
partir du formulaire.

En fait, j'ai un nombre important de requ=EAte =E0 lancer =E0=20
partir du formulaire..ce nombre est amen=E9 =E0 augmenter=20
d'ou l'id=E9e d'en faire une liste "dynamique"

Merci d'avance

10 réponses

1 2
Avatar
Yann
Salut Erwan,
Utilise la requête suivante :
SELECT MSysObjects.Name
FROM MSysObjects
WHERE (MSysObjects.Flags=0 Or MSysObjects.Flags Or
MSysObjects.Flags2 Or MSysObjects.FlagsH Or
MSysObjects.Flagsd Or MSysObjects.Flags€) AND
MSysObjects.Type=5 AND MSysObjects.Name LIKE "Restit_";

Bye
Yann

-----Message d'origine-----
Bonjour,

Sur un formuliare, dans une zone de liste , je veux
faire

apparaitre toutes les requêtes dont le nom commence
par "Restit_" afin de pouvoir les lancer directemnt à
partir du formulaire.

En fait, j'ai un nombre important de requête à lancer à
partir du formulaire..ce nombre est amené à augmenter
d'ou l'idée d'en faire une liste "dynamique"

Merci d'avance
.



Avatar
Pierre CFI [mvp]
bonjour
tu fais une table ici req avec un champ nomreq
dans le form, tu lie ta liste sur req
et
Private Sub Form_Load()
Dim r As QueryDef
Dim bd As Database
Set bd = CurrentDb
bd.Execute "delete from req"
For Each r In bd.QueryDefs

If Left(r.Name, 7) = "Restit_" Then
bd.Execute "insert into req (nomreq) values('" & r.Name & "')"
End If

Next
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Erwan" a écrit dans le message de news:14dd01c499a2$c9ebec10$
Bonjour,

Sur un formuliare, dans une zone de liste , je veux faire
apparaitre toutes les requêtes dont le nom commence
par "Restit_" afin de pouvoir les lancer directemnt à
partir du formulaire.

En fait, j'ai un nombre important de requête à lancer à
partir du formulaire..ce nombre est amené à augmenter
d'ou l'idée d'en faire une liste "dynamique"

Merci d'avance
Avatar
Eric
Bonjour Pierre

Pourquoi créer une table contenant les requêtes ?
Sur le Load du formulaire, remplir la liste déroulante
serait une erreur ? ;-)

Aussi je propose : un formulaire avec une liste déroulante nommée
Modifiable0 dans l'exemple. Son paramétrage se fait via le code.

Private Sub Form_Load()
Dim qry As DAO.QueryDef
Me.Modifiable0.RowSourceType = "Liste valeurs"
For Each qry In CurrentDb.QueryDefs
If Left(qry.Name, 7) = "Restit_" Then
Me.Modifiable0.RowSource = _
Me.Modifiable0.RowSource & qry.Name & ";"
End If
Next qry
End Sub

A+
Eric



"Pierre CFI [mvp]" écrivait
news:#:

bonjour
tu fais une table ici req avec un champ nomreq
dans le form, tu lie ta liste sur req
et
Private Sub Form_Load()
Dim r As QueryDef
Dim bd As Database
Set bd = CurrentDb
bd.Execute "delete from req"
For Each r In bd.QueryDefs

If Left(r.Name, 7) = "Restit_" Then
bd.Execute "insert into req (nomreq) values('" & r.Name &
"')"
End If

Next
End Sub




Avatar
Erwan
Merci...et si je souhaite aussi la description de la
requète (définie dans les propriétés)????
-----Message d'origine-----
bonjour
tu fais une table ici req avec un champ nomreq
dans le form, tu lie ta liste sur req
et
Private Sub Form_Load()
Dim r As QueryDef
Dim bd As Database
Set bd = CurrentDb
bd.Execute "delete from req"
For Each r In bd.QueryDefs

If Left(r.Name, 7) = "Restit_" Then
bd.Execute "insert into req (nomreq) values
('" & r.Name & "')"

End If

Next
End Sub


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Erwan" a écrit
dans le message de news:14dd01c499a2$c9ebec10

$
Bonjour,

Sur un formuliare, dans une zone de liste , je veux faire
apparaitre toutes les requêtes dont le nom commence
par "Restit_" afin de pouvoir les lancer directemnt à
partir du formulaire.

En fait, j'ai un nombre important de requête à lancer à
partir du formulaire..ce nombre est amené à augmenter
d'ou l'idée d'en faire une liste "dynamique"

Merci d'avance


.



Avatar
Erwan
Merci...et si je souhaite aussi la description de la
requète (définie dans les propriétés)????

-----Message d'origine-----
Salut Erwan,
Utilise la requête suivante :
SELECT MSysObjects.Name
FROM MSysObjects
WHERE (MSysObjects.Flags=0 Or MSysObjects.Flags Or
MSysObjects.Flags2 Or MSysObjects.FlagsH Or
MSysObjects.Flagsd Or MSysObjects.Flags€) AND
MSysObjects.Type=5 AND MSysObjects.Name LIKE "Restit_";

Bye
Yann

-----Message d'origine-----
Bonjour,

Sur un formuliare, dans une zone de liste , je veux
faire

apparaitre toutes les requêtes dont le nom commence
par "Restit_" afin de pouvoir les lancer directemnt à
partir du formulaire.

En fait, j'ai un nombre important de requête à lancer à
partir du formulaire..ce nombre est amené à augmenter
d'ou l'idée d'en faire une liste "dynamique"

Merci d'avance
.

.





Avatar
Eric
Ooops, j'avais mal lu le type de contrôle.
Remplacer la Modifiable par une Zone de Liste
Donc dans le code Modifiable0 par Liste0. Le reste est inchangé.

Eric
Avatar
Merci , je me suis débrouillé autrement

-----Message d'origine-----
Salut Erwan,
Utilise la requête suivante :
SELECT MSysObjects.Name
FROM MSysObjects
WHERE (MSysObjects.Flags=0 Or MSysObjects.Flags Or
MSysObjects.Flags2 Or MSysObjects.FlagsH Or
MSysObjects.Flagsd Or MSysObjects.Flags€) AND
MSysObjects.Type=5 AND MSysObjects.Name LIKE "Restit_";

Bye
Yann

-----Message d'origine-----
Bonjour,

Sur un formuliare, dans une zone de liste , je veux
faire

apparaitre toutes les requêtes dont le nom commence
par "Restit_" afin de pouvoir les lancer directemnt à
partir du formulaire.

En fait, j'ai un nombre important de requête à lancer à
partir du formulaire..ce nombre est amené à augmenter
d'ou l'idée d'en faire une liste "dynamique"

Merci d'avance
.

.





Avatar
Raymond [mvp]
Bonjour Eric.

à mon avis Pierre a dû essuyer le problème de la longueur maximum du
rowsource qui ne dépasse pas 4 ko pour les listes de valeurs et qui plante
la procédure car il n'y a jamais de on error sur ce type de procédure. il
faut très peu d'objets pour que le rowsource soit plein. dans le doute, si
grosse application, passer par par une table. Chat échaudé craint l'eau
froide et crée une table.

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


"Eric" a écrit dans le message de
news:
Bonjour Pierre

Pourquoi créer une table contenant les requêtes ?
Sur le Load du formulaire, remplir la liste déroulante
serait une erreur ? ;-)

Aussi je propose : un formulaire avec une liste déroulante nommée
Modifiable0 dans l'exemple. Son paramétrage se fait via le code.

Private Sub Form_Load()
Dim qry As DAO.QueryDef
Me.Modifiable0.RowSourceType = "Liste valeurs"
For Each qry In CurrentDb.QueryDefs
If Left(qry.Name, 7) = "Restit_" Then
Me.Modifiable0.RowSource = _
Me.Modifiable0.RowSource & qry.Name & ";"
End If
Next qry
End Sub

A+
Eric


Avatar
Yann
Re-,
En fait c'est une requête qui va intérroger ta propre
base de données, avec tous ses objets (tables,
formulaires, états et bien sûr requêtes) en prennant
MSysObjects.Type=5 tu prends les requêtes + autre chose,
et les requêtes sont sélectionnées avec
MSysObjects.Flags= 0 pour les sélections
MSysObjects.Flags pour les tableaux croisées dynamiques
MSysObjects.Flags2 pour les suppressions
MSysObjects.FlagsH pour les mises à jour
MSysObjects.Flagsd pour les ajouts
MSysObjects.Flags€ pour les créations de tables

MSysObjects.Name LIKE "Restit_" comme tu l'as dit...

Pour écrire cette requête, va dans une nouvelle requête
et clique sur le bouton SQL puis copie-là.

Bye
Yann

-----Message d'origine-----
Merci...et si je souhaite aussi la description de la
requète (définie dans les propriétés)????

-----Message d'origine-----
Salut Erwan,
Utilise la requête suivante :
SELECT MSysObjects.Name
FROM MSysObjects
WHERE (MSysObjects.Flags=0 Or MSysObjects.Flags Or
MSysObjects.Flags2 Or MSysObjects.FlagsH Or
MSysObjects.Flagsd Or MSysObjects.Flags€) AND
MSysObjects.Type=5 AND MSysObjects.Name LIKE "Restit_";

Bye
Yann

-----Message d'origine-----
Bonjour,

Sur un formuliare, dans une zone de liste , je veux
faire

apparaitre toutes les requêtes dont le nom commence
par "Restit_" afin de pouvoir les lancer directemnt à
partir du formulaire.

En fait, j'ai un nombre important de requête à lancer
à



partir du formulaire..ce nombre est amené à augmenter
d'ou l'idée d'en faire une liste "dynamique"

Merci d'avance
.

.


.






Avatar
Eric
Bonjour Raymond,

Merci de cette précision. J'oublie régulièrement cette limite.
J'ai beau dire que je retiendrai mais ma mémoire s'y refuse ;-)

A+
Eric


"Raymond [mvp]" écrivait
news::

Bonjour Eric.

à mon avis Pierre a dû essuyer le problème de la longueur maximum du
rowsource qui ne dépasse pas 4 ko pour les listes de valeurs et qui
plante la procédure car il n'y a jamais de on error sur ce type de
procédure. il faut très peu d'objets pour que le rowsource soit plein.
dans le doute, si grosse application, passer par par une table. Chat
échaudé craint l'eau froide et crée une table.



1 2