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

changer le type d'une requête

9 réponses
Avatar
big
Bonjour,
peut-on changer le type d'une requête pour qu'elle devienne exécutable ?
Comment ?
D'avance merci.

9 réponses

Avatar
3stone
Salut,

big wrote:
peut-on changer le type d'une requête pour qu'elle devienne
exécutable ? Comment ?



Toutes les requêtes "s'exécutent" d'une certaine façon...

Mais, parmis les requêtes, existent les requêtes de sélection
et les requêtes "action"

Donc, on "exécute" une requête action, les autres sont
plutot source d'un formulaire ou état.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
big
merci 3stone.
Mon problème est que :
en ACCESS 2007 , j'ai fait un formulaire basé sur une requête (qui
choisit/filtre un certains nombre d'enregistrements avec dans la ligne
condition :"mavaleur" pour un champ. La requête toute seule marche bien. )
mais quand j'ouvre le formulaire je vois tous les enregistrements de la table
sur laquelle la requête est basée.

D'où mon idée d'exécuter la requête avant ouvrir le formulaire (dans le code
du bouton qui ouvre le formulaire par exemple. mais je ne connais pas la
syntax.

Merci pour ton aide.

"3stone" wrote:

Salut,

big wrote:
> peut-on changer le type d'une requête pour qu'elle devienne
> exécutable ? Comment ?

Toutes les requêtes "s'exécutent" d'une certaine façon...

Mais, parmis les requêtes, existent les requêtes de sélection
et les requêtes "action"

Donc, on "exécute" une requête action, les autres sont
plutot source d'un formulaire ou état.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)

.

Avatar
3stone
Salut,

big wrote:
Mon problème est que :
en ACCESS 2007 , j'ai fait un formulaire basé sur une requête (qui
choisit/filtre un certains nombre d'enregistrements avec dans la
ligne condition :"mavaleur" pour un champ. La requête toute seule
marche bien. ) mais quand j'ouvre le formulaire je vois tous les
enregistrements de la table sur laquelle la requête est basée.



Impossible !
Si tu as correctement défini les critères dans la requête,
tu sauve cette requête.
Ensuite, dans le formulaire, tu renseigne cette requête
comme source et tu *dois* obtenir les mêmes entegistrement
dans le formulaire que lorsque tu exécute la requête seule.


D'où mon idée d'exécuter la requête avant ouvrir le formulaire (dans
le code du bouton qui ouvre le formulaire par exemple. mais je ne
connais pas la syntax.



Là, tu inventes un fonctionnement :-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
big
merci 3stone.
j'ouvre ce formulaire par un bouton dans un autre formulaire. Le code est :
Private Sub Commande3_Click()
If Me.Liste0 = MANAGER Then
DoCmd.OpenForm FORM_MANAGER
Else:

DoCmd.OpenForm "MESSAGES IN WAIT1"
End If

End Sub

Mais je constate que ce code ne s'exécute pas. Comment faire pour que le
code s'exécute ?

D'avance merci.
"3stone" wrote:

Salut,

big wrote:
> Mon problème est que :
> en ACCESS 2007 , j'ai fait un formulaire basé sur une requête (qui
> choisit/filtre un certains nombre d'enregistrements avec dans la
> ligne condition :"mavaleur" pour un champ. La requête toute seule
> marche bien. ) mais quand j'ouvre le formulaire je vois tous les
> enregistrements de la table sur laquelle la requête est basée.

Impossible !
Si tu as correctement défini les critères dans la requête,
tu sauve cette requête.
Ensuite, dans le formulaire, tu renseigne cette requête
comme source et tu *dois* obtenir les mêmes entegistrement
dans le formulaire que lorsque tu exécute la requête seule.


> D'où mon idée d'exécuter la requête avant ouvrir le formulaire (dans
> le code du bouton qui ouvre le formulaire par exemple. mais je ne
> connais pas la syntax.

Là, tu inventes un fonctionnement :-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


.

Avatar
Gloops
Bonjour,

Je serais tenté de suggérer une exécution en pas à pa s pour pouvoir
vérifier ce qu'il y a dans les variables.

Quand on dit DoCmd.OpenForm FORM_MANAGER, si il n'y a rien dans la
variable FORM_MANAGER, il y a des chances que ça ne donne pas le
résultat escompté.

Ou alors si FORM_MANAGER est le nom d'un formulaire, il faut des
guillemets, autour.
__________________________________
Le 30/04/2010 11:05, big a écrit :
merci 3stone.
j'ouvre ce formulaire par un bouton dans un autre formulaire. Le code e st :
Private Sub Commande3_Click()
If Me.Liste0 = MANAGER Then
DoCmd.OpenForm FORM_MANAGER
Else:

DoCmd.OpenForm "MESSAGES IN WAIT1"
End If

End Sub

Mais je constate que ce code ne s'exécute pas. Comment faire pour que le
code s'exécute ?

D'avance merci.
"3stone" wrote:

Avatar
big
merci Gloops.
J'ai modifié mon code :
Private Sub Commande3_Click()
If Me.Liste0 = MANAGER Then
DoCmd.OpenForm "FORM_MANAGER"
Else:

DoCmd.OpenForm "MESSAGES IN WAIT1"
End If

End Sub

Le problème reste tel quel. J'ai choisi dans le menu Débugage/exécution pas
à pas en étant dans le SUB. Et rien ne se passe.

Cdt.

"Gloops" wrote:

Bonjour,

Je serais tenté de suggérer une exécution en pas à pas pour pouvoir
vérifier ce qu'il y a dans les variables.

Quand on dit DoCmd.OpenForm FORM_MANAGER, si il n'y a rien dans la
variable FORM_MANAGER, il y a des chances que ça ne donne pas le
résultat escompté.

Ou alors si FORM_MANAGER est le nom d'un formulaire, il faut des
guillemets, autour.
__________________________________
Le 30/04/2010 11:05, big a écrit :
> merci 3stone.
> j'ouvre ce formulaire par un bouton dans un autre formulaire. Le code est :
> Private Sub Commande3_Click()
> If Me.Liste0 = MANAGER Then
> DoCmd.OpenForm FORM_MANAGER
> Else:
>
> DoCmd.OpenForm "MESSAGES IN WAIT1"
> End If
>
> End Sub
>
> Mais je constate que ce code ne s'exécute pas. Comment faire pour que le
> code s'exécute ?
>
> D'avance merci.
> "3stone" wrote:
>

.

Avatar
3stone
Salut,

big wrote:
merci 3stone.
j'ouvre ce formulaire par un bouton dans un autre formulaire. Le code
est : Private Sub Commande3_Click()
If Me.Liste0 = MANAGER Then
DoCmd.OpenForm FORM_MANAGER
Else:

DoCmd.OpenForm "MESSAGES IN WAIT1"
End If

End Sub




Qu'est ce que MANAGER ??


Mais je constate que ce code ne s'exécute pas. Comment faire pour que
le code s'exécute ?



Ce qui est différent de ton annonce première...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
big
merci 3stone.

MANAGER est une valeur dans une zone de texte suivant laquelle il faut
choisir le formulaire manager. La zone de liste contient aussi la valeur
EXECUTOR suivant laquelle on va ouvrir le formulaire "MESSAGES IN WAIT1".

En réalité le problème principal est que je puis ouvrir le formulaire.
J'avais pensé que peut être le problème vient du type de requête.

Salutations.

"3stone" wrote:

Salut,

big wrote:
> merci 3stone.
> j'ouvre ce formulaire par un bouton dans un autre formulaire. Le code
> est : Private Sub Commande3_Click()
> If Me.Liste0 = MANAGER Then
> DoCmd.OpenForm FORM_MANAGER
> Else:
>
> DoCmd.OpenForm "MESSAGES IN WAIT1"
> End If
>
> End Sub


Qu'est ce que MANAGER ??


> Mais je constate que ce code ne s'exécute pas. Comment faire pour que
> le code s'exécute ?

Ce qui est différent de ton annonce première...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


.

Avatar
3stone
Salut,

big wrote:
MANAGER est une valeur dans une zone de texte suivant laquelle il faut
choisir le formulaire manager.




Cela ne risque donc pas de fonctionner ;-)


If Me.Liste0 = "MANAGER" Then

serait plus correct !


Note:
Tu devrais compiler ton code pour détecter les erreurs grossières!
Tu devrais aussi rendre la déclaration des variables obligatoire !
- pour cela, faire ALT + F11 (pour afficher l'éditeur VBA)
- puis, par le menu Outils, Options...
- cocher tout et particulièrement "Déclaration des variables obligatoire"

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)