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

8 réponses

1 2
Avatar
3stone
re,

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


Dans la table, c'est bien un boolean ? une case à cocher ??

Les oui, non, vrai, faux ne sont que des représentations visuelles
d'une valeur booleenne. On teste donc avec true ou false, ou éventuellement
avec leur valeur numérique 0 et -1


--
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,
Non, l'erreur est là.
Le champ dans la tables est un champ texte et dans le formulaire une liste
déroulante avec une table 'OUI', 'NON'
Voilà comment j'ai résolu:
J'ai changé le OUI/NON par AUTO/NON et maintenant ça fonctionne.

Une autre question si je peux me permettre.

J'aimerai savoir comment rajouter une fonction 'strWhere' (requête
intermédiaire)à

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 pas.

Luis




re,

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


Dans la table, c'est bien un boolean ? une case à cocher ??

Les oui, non, vrai, faux ne sont que des représentations visuelles
d'une valeur booleenne. On teste donc avec true ou false, ou éventuellement
avec leur valeur numérique 0 et -1


--
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
Hello, Luis,
Je ne suis pas sûr de bien comprendre ce que tu veux. S'agit -il d'ajouter à
tes commandes OpenForm des critères contenus dans une chaîne de caractères
strWhere?

SI oui, tu vois bien que "COMPETENCE = ... " est déjà une chaîne de critère
donc tu écris :

DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'" & " AND " & strWhere


A +

pgz

Avatar
Luis
Rebonjour,
Oui, tu as très bien compris.
Mon problème est qu'en mettant
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'" & " AND " & strWhere

J'ai incompatibilité de type.
Voilà, pourquoi je me pose la question.
Luis


Hello, Luis,
Je ne suis pas sûr de bien comprendre ce que tu veux. S'agit -il d'ajouter à
tes commandes OpenForm des critères contenus dans une chaîne de caractères
strWhere?

SI oui, tu vois bien que "COMPETENCE = ... " est déjà une chaîne de critère
donc tu écris :

DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = '" &
Me.Qualification & "' AND AUTO_1 = 'OUI'" & " AND " & strWhere


A +

pgz




Avatar
pgz
Mets un MsgBox strWhere juste avant l'openform et note ce qui s'affiche. On
verra bien...

A+
pgz






Avatar
3stone
Salut,

"Luis"
| Le champ dans la tables est un champ texte et dans le formulaire une liste
| déroulante avec une table 'OUI', 'NON'
| Voilà comment j'ai résolu:
| J'ai changé le OUI/NON par AUTO/NON et maintenant ça fonctionne.


Mais quelle drôle d'idée d'utiliser un champ texte pour mettre oui ou non ;-)



| J'aimerai savoir comment rajouter une fonction 'strWhere' (requête
| intermédiaire)à
|
| 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


Cela semble correct ce que tu écris...
Numérique sans et texte avec les apostrophes !

--
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
Rebonjour,
Voilà, j'ai résolu comme ça:
DoCmd.OpenForm "StablesCommandes1", acNormal, , "COMPETENCE = "'" &
Me.Qualification & "' AND AUTO_1 = 'OUI'" & " AND " & strWhere

La différence est "COMPETENCE = "'" & au lieu de "COMPETENCE = '" &

C'est étrange, mais comme ça ça marche.
Merci pour ta gentillesse et ta patience à m'aider.

Luis

Mets un MsgBox strWhere juste avant l'openform et note ce qui s'affiche. On
verra bien...

A+
pgz








Avatar
Christophe
Bonjour,
vous pouvez mettre la fonction If devant une commande (ouverture ou autre).
Je pense que le problème vient du fait d'utiliser la fonction "Me.". Elle
m'a déjà jouer des tours.

Essayez de réécrire votr condition dans l'autre sens, il y des chances que
ça marche
--
ChL



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



1 2