Bonjour à tous
j'ai un formulaire ds lequel j'ai 2 listes déroulantes
liste1 (A,B,C)
liste 2 (A1, A2, A3, A4....)
et un bouton qui est sensé lancer la macro quand je sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... )
pour qu'à partir de là ma macro
m'ouvre la requête correspondante
exemple inspiré d'excel
si(et(liste1=a;liste2=a1);"lance la requete
1";si(et(liste1=a;liste2=A2);"lance la requete2".....)
pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser
des variables mais là je suis out)
si tu calcules le A,B,C et un nombre important dans liste2, tu imagines facilement le nombre de combinaisons. Si au lieu de nommer tes requêtes requête1, requête2 .... tu les nommais Requête_AA1, requête_BA4, Requête_CA3, tu pourrais générer le nom de la requête directement par: "Requête_" & liste1 & liste2. A mon avis ton problème doit être plus simple, et il suffirait de construire directement la requête en vba pour supprimer l'ensemble de tes requêtes.
-- @+ 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
"BV" a écrit dans le message de news:cce2is$qrf$
Bonjour à tous j'ai un formulaire ds lequel j'ai 2 listes déroulantes liste1 (A,B,C) liste 2 (A1, A2, A3, A4....) et un bouton qui est sensé lancer la macro quand je sélectionne un élément de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... ) pour qu'à partir de là ma macro m'ouvre la requête correspondante
exemple inspiré d'excel si(et(liste1=a;liste2¡);"lance la requete 1";si(et(liste1=a;liste2¢);"lance la requete2".....) pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser des variables mais là je suis out)
je suis bloqué
merci d'avance
BV
Bonjour.
si tu calcules le A,B,C et un nombre important dans liste2, tu imagines
facilement le nombre de combinaisons. Si au lieu de nommer tes requêtes
requête1, requête2 .... tu les nommais Requête_AA1, requête_BA4,
Requête_CA3, tu pourrais générer le nom de la requête directement par:
"Requête_" & liste1 & liste2.
A mon avis ton problème doit être plus simple, et il suffirait de construire
directement la requête en vba pour supprimer l'ensemble de tes requêtes.
--
@+
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
"BV" <informatique@groupeairh.com> a écrit dans le message de
news:cce2is$qrf$1@news-reader2.wanadoo.fr...
Bonjour à tous
j'ai un formulaire ds lequel j'ai 2 listes déroulantes
liste1 (A,B,C)
liste 2 (A1, A2, A3, A4....)
et un bouton qui est sensé lancer la macro quand je sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... )
pour qu'à partir de là ma macro
m'ouvre la requête correspondante
exemple inspiré d'excel
si(et(liste1=a;liste2¡);"lance la requete
1";si(et(liste1=a;liste2¢);"lance la requete2".....)
pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser
des variables mais là je suis out)
si tu calcules le A,B,C et un nombre important dans liste2, tu imagines facilement le nombre de combinaisons. Si au lieu de nommer tes requêtes requête1, requête2 .... tu les nommais Requête_AA1, requête_BA4, Requête_CA3, tu pourrais générer le nom de la requête directement par: "Requête_" & liste1 & liste2. A mon avis ton problème doit être plus simple, et il suffirait de construire directement la requête en vba pour supprimer l'ensemble de tes requêtes.
-- @+ 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
"BV" a écrit dans le message de news:cce2is$qrf$
Bonjour à tous j'ai un formulaire ds lequel j'ai 2 listes déroulantes liste1 (A,B,C) liste 2 (A1, A2, A3, A4....) et un bouton qui est sensé lancer la macro quand je sélectionne un élément de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... ) pour qu'à partir de là ma macro m'ouvre la requête correspondante
exemple inspiré d'excel si(et(liste1=a;liste2¡);"lance la requete 1";si(et(liste1=a;liste2¢);"lance la requete2".....) pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser des variables mais là je suis out)
je suis bloqué
merci d'avance
BV
BV
merci mais difficile pour moi de tout faire en vba manque de connaissances suffisantes j'ai essayé un systeme comme ca au fait question suis je obligé à chaque fois de répéter autant de fois de end if que j'ai de conditions (je demande de la clémence je débute :)
Private Sub Commande6_Click() Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA] If liste1 = "% H/F" Then DoCmd.OpenQuery "R_H/F" Else
If liste1 = "% enfants à charge" Then DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then DoCmd.OpenQuery "R_ANPE"
Else MsgBox ("autre choix non actif")
End If End If End If End Sub
"Raymond [mvp]" a écrit dans le message news:
Bonjour.
si tu calcules le A,B,C et un nombre important dans liste2, tu imagines facilement le nombre de combinaisons. Si au lieu de nommer tes requêtes requête1, requête2 .... tu les nommais Requête_AA1, requête_BA4, Requête_CA3, tu pourrais générer le nom de la requête directement par: "Requête_" & liste1 & liste2. A mon avis ton problème doit être plus simple, et il suffirait de construire
directement la requête en vba pour supprimer l'ensemble de tes requêtes.
-- @+ 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
"BV" a écrit dans le message de news:cce2is$qrf$
Bonjour à tous j'ai un formulaire ds lequel j'ai 2 listes déroulantes liste1 (A,B,C) liste 2 (A1, A2, A3, A4....) et un bouton qui est sensé lancer la macro quand je sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... )
pour qu'à partir de là ma macro m'ouvre la requête correspondante
exemple inspiré d'excel si(et(liste1=a;liste2¡);"lance la requete 1";si(et(liste1=a;liste2¢);"lance la requete2".....) pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser
des variables mais là je suis out)
je suis bloqué
merci d'avance
BV
merci mais difficile pour moi de tout faire en vba
manque de connaissances suffisantes
j'ai essayé un systeme comme ca
au fait question suis je obligé à chaque fois de répéter autant de fois de
end if
que j'ai de conditions
(je demande de la clémence je débute :)
Private Sub Commande6_Click()
Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA]
If liste1 = "% H/F" Then
DoCmd.OpenQuery "R_H/F"
Else
If liste1 = "% enfants à charge" Then
DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then
DoCmd.OpenQuery "R_ANPE"
Else
MsgBox ("autre choix non actif")
End If
End If
End If
End Sub
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message news:
OSusPV2YEHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour.
si tu calcules le A,B,C et un nombre important dans liste2, tu imagines
facilement le nombre de combinaisons. Si au lieu de nommer tes requêtes
requête1, requête2 .... tu les nommais Requête_AA1, requête_BA4,
Requête_CA3, tu pourrais générer le nom de la requête directement par:
"Requête_" & liste1 & liste2.
A mon avis ton problème doit être plus simple, et il suffirait de
construire
directement la requête en vba pour supprimer l'ensemble de tes requêtes.
--
@+
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
"BV" <informatique@groupeairh.com> a écrit dans le message de
news:cce2is$qrf$1@news-reader2.wanadoo.fr...
Bonjour à tous
j'ai un formulaire ds lequel j'ai 2 listes déroulantes
liste1 (A,B,C)
liste 2 (A1, A2, A3, A4....)
et un bouton qui est sensé lancer la macro quand je sélectionne un
élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1
etc..... )
pour qu'à partir de là ma macro
m'ouvre la requête correspondante
exemple inspiré d'excel
si(et(liste1=a;liste2¡);"lance la requete
1";si(et(liste1=a;liste2¢);"lance la requete2".....)
pour info le contenu de ma liste 2 est long (je pense qu'il faut
utiliser
merci mais difficile pour moi de tout faire en vba manque de connaissances suffisantes j'ai essayé un systeme comme ca au fait question suis je obligé à chaque fois de répéter autant de fois de end if que j'ai de conditions (je demande de la clémence je débute :)
Private Sub Commande6_Click() Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA] If liste1 = "% H/F" Then DoCmd.OpenQuery "R_H/F" Else
If liste1 = "% enfants à charge" Then DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then DoCmd.OpenQuery "R_ANPE"
Else MsgBox ("autre choix non actif")
End If End If End If End Sub
"Raymond [mvp]" a écrit dans le message news:
Bonjour.
si tu calcules le A,B,C et un nombre important dans liste2, tu imagines facilement le nombre de combinaisons. Si au lieu de nommer tes requêtes requête1, requête2 .... tu les nommais Requête_AA1, requête_BA4, Requête_CA3, tu pourrais générer le nom de la requête directement par: "Requête_" & liste1 & liste2. A mon avis ton problème doit être plus simple, et il suffirait de construire
directement la requête en vba pour supprimer l'ensemble de tes requêtes.
-- @+ 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
"BV" a écrit dans le message de news:cce2is$qrf$
Bonjour à tous j'ai un formulaire ds lequel j'ai 2 listes déroulantes liste1 (A,B,C) liste 2 (A1, A2, A3, A4....) et un bouton qui est sensé lancer la macro quand je sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... )
pour qu'à partir de là ma macro m'ouvre la requête correspondante
exemple inspiré d'excel si(et(liste1=a;liste2¡);"lance la requete 1";si(et(liste1=a;liste2¢);"lance la requete2".....) pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser
des variables mais là je suis out)
je suis bloqué
merci d'avance
BV
Raymond [mvp]
Si tu débutes en vba, il est préférable de placer une seule instruction par ligne avec un endif. plus tard, très bientôt tu pourras mettre les instructions sur la même ligne en les séparant par des : et même te passer des endif pour les if simples. Pour l'instant, tu fais If Condition Then instructions Else instructions End If
Les 2 lignes else ... instructions sont facultatives: If Condition Then instructions End If
Chaque End If correspond à un If et quand ils sont imbriqués, l'indentation des lignes est obligatoire ( mise en retrait des débuts de ligne) pour une bonne lecture. Lorsque tu as plusieurs If sur la même variable qui se suivent, il est préférable de passer par une instruction Select Case dans ton exemple les else devraient être remplacés par des ElseIf ce qui supprimerait beaucoup de IF et même un select case. -- @+ 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
"BV" a écrit dans le message de news:ccedka$p64$
merci mais difficile pour moi de tout faire en vba manque de connaissances suffisantes j'ai essayé un systeme comme ca au fait question suis je obligé à chaque fois de répéter autant de fois de end if que j'ai de conditions (je demande de la clémence je débute :)
Private Sub Commande6_Click() Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA] If liste1 = "% H/F" Then DoCmd.OpenQuery "R_H/F" Else
If liste1 = "% enfants à charge" Then DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then DoCmd.OpenQuery "R_ANPE"
Else MsgBox ("autre choix non actif")
End If End If End If End Sub
Si tu débutes en vba, il est préférable de placer une seule instruction par
ligne avec un endif. plus tard, très bientôt tu pourras mettre les
instructions sur la même ligne en les séparant par des : et même te passer
des endif pour les if simples.
Pour l'instant, tu fais
If Condition Then
instructions
Else
instructions
End If
Les 2 lignes else ... instructions sont facultatives:
If Condition Then
instructions
End If
Chaque End If correspond à un If et quand ils sont imbriqués, l'indentation
des lignes est obligatoire ( mise en retrait des débuts de ligne) pour une
bonne lecture.
Lorsque tu as plusieurs If sur la même variable qui se suivent, il est
préférable de passer par une instruction Select Case
dans ton exemple les else devraient être remplacés par des ElseIf ce qui
supprimerait beaucoup de IF et même un select case.
--
@+
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
"BV" <informatique@groupeairh.com> a écrit dans le message de
news:ccedka$p64$1@news-reader5.wanadoo.fr...
merci mais difficile pour moi de tout faire en vba
manque de connaissances suffisantes
j'ai essayé un systeme comme ca
au fait question suis je obligé à chaque fois de répéter autant de fois de
end if
que j'ai de conditions
(je demande de la clémence je débute :)
Private Sub Commande6_Click()
Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA]
If liste1 = "% H/F" Then
DoCmd.OpenQuery "R_H/F"
Else
If liste1 = "% enfants à charge" Then
DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then
DoCmd.OpenQuery "R_ANPE"
Si tu débutes en vba, il est préférable de placer une seule instruction par ligne avec un endif. plus tard, très bientôt tu pourras mettre les instructions sur la même ligne en les séparant par des : et même te passer des endif pour les if simples. Pour l'instant, tu fais If Condition Then instructions Else instructions End If
Les 2 lignes else ... instructions sont facultatives: If Condition Then instructions End If
Chaque End If correspond à un If et quand ils sont imbriqués, l'indentation des lignes est obligatoire ( mise en retrait des débuts de ligne) pour une bonne lecture. Lorsque tu as plusieurs If sur la même variable qui se suivent, il est préférable de passer par une instruction Select Case dans ton exemple les else devraient être remplacés par des ElseIf ce qui supprimerait beaucoup de IF et même un select case. -- @+ 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
"BV" a écrit dans le message de news:ccedka$p64$
merci mais difficile pour moi de tout faire en vba manque de connaissances suffisantes j'ai essayé un systeme comme ca au fait question suis je obligé à chaque fois de répéter autant de fois de end if que j'ai de conditions (je demande de la clémence je débute :)
Private Sub Commande6_Click() Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA] If liste1 = "% H/F" Then DoCmd.OpenQuery "R_H/F" Else
If liste1 = "% enfants à charge" Then DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then DoCmd.OpenQuery "R_ANPE"
Else MsgBox ("autre choix non actif")
End If End If End If End Sub
eric.NOSPAMvalery
Bonjour,
Je n'ai aps tout compris: Le choix d'un élément dans liste1 et liste2 détermine t'il exactement une requete. Si oui, la requete varie t'elle seulement par les paramètres des choix fait dans liste1 et liste2. Si oui, une solution :
Clic sur liste 1 Clic sur liste 2
Soit AfterUpdate (après mise a jour) de liste2, soit en mettant un bouton (pour éviter de lancer une requete a chaque fois que l'on change la valeur de liste2), donc sur clic du bouton: définir la requete a exécuter dans la procédure evenementielle du sur clic du bouton
"select A,B form tableX where A=" & me.liste1 & " AND B=" & me.liste2
Si A et B sont des chaines prévoir des guillemet pour entourer me.liste1 et me.liste2 ou faire des likes.
Si ce sont des requetes différentes, je ne voit pas bien le problème, ou en tout cas je ne vois pas bien de solution a part creer une table qui contiendra trois champ liste1, liste2, nomrequete et qui donne la requete a lancer en fonction des choix de liste 1 et liste 2.
Bon courage.
EVA
-----Message d'origine----- Bonjour à tous j'ai un formulaire ds lequel j'ai 2 listes déroulantes liste1 (A,B,C) liste 2 (A1, A2, A3, A4....) et un bouton qui est sensé lancer la macro quand je sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... )
pour qu'à partir de là ma macro m'ouvre la requête correspondante
exemple inspiré d'excel si(et(liste1=a;liste2¡);"lance la requete 1";si(et(liste1=a;liste2¢);"lance la requete2".....) pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser
des variables mais là je suis out)
je suis bloqué
merci d'avance
BV
.
Bonjour,
Je n'ai aps tout compris:
Le choix d'un élément dans liste1 et liste2 détermine
t'il exactement une requete. Si oui, la requete varie
t'elle seulement par les paramètres des choix fait dans
liste1 et liste2. Si oui, une solution :
Clic sur liste 1
Clic sur liste 2
Soit AfterUpdate (après mise a jour) de liste2, soit en
mettant un bouton (pour éviter de lancer une requete a
chaque fois que l'on change la valeur de liste2), donc
sur clic du bouton:
définir la requete a exécuter dans la procédure
evenementielle du sur clic du bouton
"select A,B form tableX where A=" & me.liste1 & " AND B="
& me.liste2
Si A et B sont des chaines prévoir des guillemet pour
entourer me.liste1 et me.liste2 ou faire des likes.
Si ce sont des requetes différentes, je ne voit pas bien
le problème, ou en tout cas je ne vois pas bien de
solution a part creer une table qui contiendra trois
champ liste1, liste2, nomrequete et qui donne la requete
a lancer en fonction des choix de liste 1 et liste 2.
Bon courage.
EVA
-----Message d'origine-----
Bonjour à tous
j'ai un formulaire ds lequel j'ai 2 listes déroulantes
liste1 (A,B,C)
liste 2 (A1, A2, A3, A4....)
et un bouton qui est sensé lancer la macro quand je
sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou
B et A1 etc..... )
pour qu'à partir de là ma macro
m'ouvre la requête correspondante
exemple inspiré d'excel
si(et(liste1=a;liste2=a1);"lance la requete
1";si(et(liste1=a;liste2=A2);"lance la requete2".....)
pour info le contenu de ma liste 2 est long (je pense
qu'il faut utiliser
Je n'ai aps tout compris: Le choix d'un élément dans liste1 et liste2 détermine t'il exactement une requete. Si oui, la requete varie t'elle seulement par les paramètres des choix fait dans liste1 et liste2. Si oui, une solution :
Clic sur liste 1 Clic sur liste 2
Soit AfterUpdate (après mise a jour) de liste2, soit en mettant un bouton (pour éviter de lancer une requete a chaque fois que l'on change la valeur de liste2), donc sur clic du bouton: définir la requete a exécuter dans la procédure evenementielle du sur clic du bouton
"select A,B form tableX where A=" & me.liste1 & " AND B=" & me.liste2
Si A et B sont des chaines prévoir des guillemet pour entourer me.liste1 et me.liste2 ou faire des likes.
Si ce sont des requetes différentes, je ne voit pas bien le problème, ou en tout cas je ne vois pas bien de solution a part creer une table qui contiendra trois champ liste1, liste2, nomrequete et qui donne la requete a lancer en fonction des choix de liste 1 et liste 2.
Bon courage.
EVA
-----Message d'origine----- Bonjour à tous j'ai un formulaire ds lequel j'ai 2 listes déroulantes liste1 (A,B,C) liste 2 (A1, A2, A3, A4....) et un bouton qui est sensé lancer la macro quand je sélectionne un élément
de chaque
principe je veux pouvoir choisir (A et A1 ou A et A4 ou B et A1 etc..... )
pour qu'à partir de là ma macro m'ouvre la requête correspondante
exemple inspiré d'excel si(et(liste1=a;liste2¡);"lance la requete 1";si(et(liste1=a;liste2¢);"lance la requete2".....) pour info le contenu de ma liste 2 est long (je pense qu'il faut utiliser
des variables mais là je suis out)
je suis bloqué
merci d'avance
BV
.
BV
merci je vais essayer de suivre tes conseils même si je ne me sents pas trop rassuré pour le faire (non ca n'explose pas) en fait j'essaie d'apprendre pas à pas avec des msgbox pour me guider mais ca me parait tellement puissant que je crois que je vais investir dans une formation vba
thanks
BV
"Raymond [mvp]" a écrit dans le message news:
Si tu débutes en vba, il est préférable de placer une seule instruction par
ligne avec un endif. plus tard, très bientôt tu pourras mettre les instructions sur la même ligne en les séparant par des : et même te passer des endif pour les if simples. Pour l'instant, tu fais If Condition Then instructions Else instructions End If
Les 2 lignes else ... instructions sont facultatives: If Condition Then instructions End If
Chaque End If correspond à un If et quand ils sont imbriqués, l'indentation
des lignes est obligatoire ( mise en retrait des débuts de ligne) pour une bonne lecture. Lorsque tu as plusieurs If sur la même variable qui se suivent, il est préférable de passer par une instruction Select Case dans ton exemple les else devraient être remplacés par des ElseIf ce qui supprimerait beaucoup de IF et même un select case. -- @+ 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
"BV" a écrit dans le message de news:ccedka$p64$
merci mais difficile pour moi de tout faire en vba manque de connaissances suffisantes j'ai essayé un systeme comme ca au fait question suis je obligé à chaque fois de répéter autant de fois de
end if que j'ai de conditions (je demande de la clémence je débute :)
Private Sub Commande6_Click() Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA] If liste1 = "% H/F" Then DoCmd.OpenQuery "R_H/F" Else
If liste1 = "% enfants à charge" Then DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then DoCmd.OpenQuery "R_ANPE"
Else MsgBox ("autre choix non actif")
End If End If End If End Sub
merci je vais essayer de suivre tes conseils même si je ne me sents pas
trop rassuré pour le faire (non ca n'explose pas) en fait j'essaie
d'apprendre pas à pas avec des msgbox pour me guider mais ca me parait
tellement puissant que je crois que je vais investir dans une formation vba
thanks
BV
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message news:
us0vAj2YEHA.1356@TK2MSFTNGP09.phx.gbl...
Si tu débutes en vba, il est préférable de placer une seule instruction
par
ligne avec un endif. plus tard, très bientôt tu pourras mettre les
instructions sur la même ligne en les séparant par des : et même te passer
des endif pour les if simples.
Pour l'instant, tu fais
If Condition Then
instructions
Else
instructions
End If
Les 2 lignes else ... instructions sont facultatives:
If Condition Then
instructions
End If
Chaque End If correspond à un If et quand ils sont imbriqués,
l'indentation
des lignes est obligatoire ( mise en retrait des débuts de ligne) pour une
bonne lecture.
Lorsque tu as plusieurs If sur la même variable qui se suivent, il est
préférable de passer par une instruction Select Case
dans ton exemple les else devraient être remplacés par des ElseIf ce qui
supprimerait beaucoup de IF et même un select case.
--
@+
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
"BV" <informatique@groupeairh.com> a écrit dans le message de
news:ccedka$p64$1@news-reader5.wanadoo.fr...
merci mais difficile pour moi de tout faire en vba
manque de connaissances suffisantes
j'ai essayé un systeme comme ca
au fait question suis je obligé à chaque fois de répéter autant de fois
de
end if
que j'ai de conditions
(je demande de la clémence je débute :)
Private Sub Commande6_Click()
Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA]
If liste1 = "% H/F" Then
DoCmd.OpenQuery "R_H/F"
Else
If liste1 = "% enfants à charge" Then
DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then
DoCmd.OpenQuery "R_ANPE"
merci je vais essayer de suivre tes conseils même si je ne me sents pas trop rassuré pour le faire (non ca n'explose pas) en fait j'essaie d'apprendre pas à pas avec des msgbox pour me guider mais ca me parait tellement puissant que je crois que je vais investir dans une formation vba
thanks
BV
"Raymond [mvp]" a écrit dans le message news:
Si tu débutes en vba, il est préférable de placer une seule instruction par
ligne avec un endif. plus tard, très bientôt tu pourras mettre les instructions sur la même ligne en les séparant par des : et même te passer des endif pour les if simples. Pour l'instant, tu fais If Condition Then instructions Else instructions End If
Les 2 lignes else ... instructions sont facultatives: If Condition Then instructions End If
Chaque End If correspond à un If et quand ils sont imbriqués, l'indentation
des lignes est obligatoire ( mise en retrait des débuts de ligne) pour une bonne lecture. Lorsque tu as plusieurs If sur la même variable qui se suivent, il est préférable de passer par une instruction Select Case dans ton exemple les else devraient être remplacés par des ElseIf ce qui supprimerait beaucoup de IF et même un select case. -- @+ 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
"BV" a écrit dans le message de news:ccedka$p64$
merci mais difficile pour moi de tout faire en vba manque de connaissances suffisantes j'ai essayé un systeme comme ca au fait question suis je obligé à chaque fois de répéter autant de fois de
end if que j'ai de conditions (je demande de la clémence je débute :)
Private Sub Commande6_Click() Dim liste1 As String
liste1 = Forms![F_depart requetes]![listeA] If liste1 = "% H/F" Then DoCmd.OpenQuery "R_H/F" Else
If liste1 = "% enfants à charge" Then DoCmd.OpenQuery "R_enfants à charge"
Else
If liste1 = "% inscrits à l'anpe" Then DoCmd.OpenQuery "R_ANPE"
Else MsgBox ("autre choix non actif")
End If End If End If End Sub
Raymond [mvp]
C'est une trrès bonne idée qui te fera avancer immédiatement.
-- @+ 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
"BV" a écrit dans le message de news:ccefgm$l74$
merci je vais essayer de suivre tes conseils même si je ne me sents pas trop rassuré pour le faire (non ca n'explose pas) en fait j'essaie d'apprendre pas à pas avec des msgbox pour me guider mais ca me parait tellement puissant que je crois que je vais investir dans une formation vba
thanks
BV
C'est une trrès bonne idée qui te fera avancer immédiatement.
--
@+
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
"BV" <informatique@groupeairh.com> a écrit dans le message de
news:ccefgm$l74$1@news-reader1.wanadoo.fr...
merci je vais essayer de suivre tes conseils même si je ne me sents pas
trop rassuré pour le faire (non ca n'explose pas) en fait j'essaie
d'apprendre pas à pas avec des msgbox pour me guider mais ca me parait
tellement puissant que je crois que je vais investir dans une formation
vba
C'est une trrès bonne idée qui te fera avancer immédiatement.
-- @+ 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
"BV" a écrit dans le message de news:ccefgm$l74$
merci je vais essayer de suivre tes conseils même si je ne me sents pas trop rassuré pour le faire (non ca n'explose pas) en fait j'essaie d'apprendre pas à pas avec des msgbox pour me guider mais ca me parait tellement puissant que je crois que je vais investir dans une formation vba