OVH Cloud OVH Cloud

Sélection avec if

18 réponses
Avatar
Luis
Bonjour,
Je suis à nouveau sur un problème d'ouverture de formulaire avec une
sélection.

Dans un formulaire j'ai une commande

If (Me.AUTO) = OUI Then
DoCmd.OpenForm "StablesCommandes1", acNormal, ,
"([COMPETENCE]=[Forms]![Commandes1].[Qualification] AND [AUTO_1] =
[Forms]![Commandes1].[AUTO])"
Else
DoCmd.OpenForm "StablesCommandes1", acNormal, ,
"([COMPETENCE]=[Forms]![Commandes1].[Qualification])"
End if

Mais le formulaire "StablesCommandes1" s'ouvre sans que la sélection
"[AUTO_1] = [Forms]![Commandes1].[AUTO])" se fasse lorsqu'elle exite dans le
formulaire "StablesCommandes1".

Est-ce que l'on ne peut pas mettre de if avant la commande d'ouverture d'un
formulaire?
Merci pour votre aide.
Luis

10 réponses

1 2
Avatar
pgz
Bonjour,

Tu peux bien sûr utiliser openform sous 'if'. Le pb doit être ailleurs. SI
tu exécute ton openform sans condition, le pb doit être le même.
Si ton code est lans le formuleire COmmandes1, tu peux essayer :
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"

Bonne chance,
pgz
Avatar
Luis
Bonjour,
Si je mets dans Commandes1:
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"

Le formulaire StablesCommandes1" s'ouvre en tenant compte de la sélection
AUTO_1=OUI

Si le formulaire "Commandes1" a dans AUTO "NON"je n'ai pas besoin que la
sélection s'exécute et je mets:
If (Me.Auto) = "OUI" then
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"
Else
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "'"
End if


Le formulaire "StablesCommandes1" s'ouvre sans avoir sélectionné le Me.Auto
du formulaire "Commandes1"

Que "AUTO" dans le formulaire "Commandes1" est un "OUI" ou un "NON" le
résultat est le même.

La est mon problème.

Luis

Bonjour,

Tu peux bien sûr utiliser openform sous 'if'. Le pb doit être ailleurs. SI
tu exécute ton openform sans condition, le pb doit être le même.
Si ton code est lans le formuleire COmmandes1, tu peux essayer :
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"

Bonne chance,
pgz




Avatar
pgz
Il va falloir trouver d'où ça vient, cré di diou!
Tu veux essayer ça :
If (Me.Auto) = "OUI" then
msgbox "ouverture avec critère AUTO"
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"
Else
msgbox "ouverture sans critère AUTO"

DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "'"
End if


pour voir. Et tu dis ce que ça fait...
A+
pgz

Avatar
pgz
Il semble que le pb vienne du contrôle AUTO dans commandes1, qui ne doit
jamais contenir "OUI". Peut-être qqc de ressemblant, mais pas "OUI";
pgz
Avatar
Luis
Rebonjour,
Ca passe tout droit, je m'attendais à voir la msgbox s'ouvrir lorqu'il y a
Me.AUTO="OUI" et ben non.
Là est le problème, mais je n'arrive pas à comprendre pourquoi.

Le formulaire Commandes1 est Feuille rép dyn.(Maj globale),
Verrouillage sur Enr modifié.
Cycle: Enregistrement en cours

Je ne trouve pas la raison.

Luis


Il va falloir trouver d'où ça vient, cré di diou!
Tu veux essayer ça :
If (Me.Auto) = "OUI" then
msgbox "ouverture avec critère AUTO"
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"
Else
msgbox "ouverture sans critère AUTO"

DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "'"
End if


pour voir. Et tu dis ce que ça fait...
A+
pgz




Avatar
3stone
Salut,

"Luis"
| Ca passe tout droit, je m'attendais à voir la msgbox s'ouvrir lorqu'il y a
| Me.AUTO="OUI" et ben non.
| Là est le problème, mais je n'arrive pas à comprendre pourquoi.


Si "Auto" est un champ 'oui/non' il faudrait plutôt ecrire :


if me.auto = True Then


--
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
pgz
dernière étape: ajoute devant le if :
msgbox Me.Auto

et racontes-moi...

pgz
Avatar
Luis
Bonjour Pierre,
Le champ "Auto" est un champ 'oui/non' mais avec:

If Me.Auto = True Then
Le problème est le même.
C'est comme si le champ était toujours sur "NON".

Luis




Salut,

"Luis"
| Ca passe tout droit, je m'attendais à voir la msgbox s'ouvrir lorqu'il y a
| Me.AUTO="OUI" et ben non.
| Là est le problème, mais je n'arrive pas à comprendre pourquoi.


Si "Auto" est un champ 'oui/non' il faudrait plutôt ecrire :


if me.auto = True Then


--
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
Luis
Bonjour,
Avec msgbox Me.Auto devant le If, la Msgbox s'ouvre avec OUI ou NON.
La ça devient encore plus étonnant.
Luis




dernière étape: ajoute devant le if :
msgbox Me.Auto

et racontes-moi...

pgz




Avatar
Luis
Oui,
au fait tu as raison le problème vient du "OUI"
J'ai changé le OUI/NON par AUTO/NON et maintenant ça fonctionne.
Je ne savais pas que "OUI" étais réservé.

J'aimerai savoir comment rajouter une fonction 'strWhere' après

If (Me.Auto) = "AUTO" then
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'"
Else
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "'"
End if

Je sais mettre la fonction comme ça:
DoCmd.OpenForm "StablesCommandes1", acNormal, , strWhere

Mais au moment ou il y a des conditions après acNormal je ne sais plus.

Luis

Il semble que le pb vienne du contrôle AUTO dans commandes1, qui ne doit
jamais contenir "OUI". Peut-être qqc de ressemblant, mais pas "OUI";
pgz




1 2