CRITERE DUN FORMULAIRE A PARTIR DE PLUSIEURES LISTE A CHOIX MULTIPLE
2 réponses
HandiBasket
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais
creer 3 zone de liste a choix multiple
1er liste : Année
2nd liste : index
3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce
qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la
2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en
dessous in formulaire tabulaire tous simple avec comme criteres les
differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1
2005 561 ALLASSAC - LIMOGES BENEDICTINS 2
2005 560 ARGELES SUR MER - BANYULS SUR MER 2
2006 340 ARGELES SUR MER - CARCASSONNE 2
2006 352 ARGELES SUR MER - CERBERE 2
2006 340 ARGELES SUR MER - COLLIOURE 2
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ze Titi
Bonjour HandiBasket
Tes 3 listes doivent avoir la même source à l'ouverture du formulaire, tu fais juste différer les colonnes affichées. La procédure décrite est fortement inspirée de l'article de Raymond http://officesystem.access.free.fr/ex_fonction_unique.htm J'ai supposé qu'à la place du formulaire tabulaire que tu souhaites, ça soit plutôt une listebox...
Pour commencer, sélectionne tes 3 listes. Dans l'onglet Autres des propriétés, ligne Remarques, tape "Groupe1" sans les guillemets.
Ensuite, colle le code suivant en n'oubliant pas de modifier le nom de la table dans strSQL="SELECT * FROM taTable......" et le nom de la liste supplémentaire dans "nomListeSuivante=IIf..." et "listeCourante=IIf..."
Public Function EventGroup(FormObject As Form, GroupName As String, FunctionName As String) As Boolean On Error GoTo Err_EventGroup Dim Ctl As Control For Each Ctl In FormObject.Controls If Ctl.Tag = GroupName Then Ctl.OnClick = "=" & FunctionName & "(""" & Ctl.Name & """)" End If Next Ctl EventGroup = True Err_EventGroup: End Function
Function FiltrerListes(nomContrôle as String) as Boolean Dim varItem, ctl as Control, strSQL as String, nomListeSuivante as String, listeCourante As String listeCourante="Année" nomListeSuivante=IIf(nomContrôle="Année","index",IIf(nomContôle="Index","parcours","laListeBoxSupplémentaire")) strSQL="SELECT * FROM taTable WHERE (" Do Set ctl=Me.Controls(listeCourante) For each varItem in ctl.ItemsSelected strSQL=strSQL & listeCourante & "=" & ctl.ItemData(varItem) & " OR " Next strSQL=Left(strSQL,len(strSQL)-4) & ") AND (" listeCourante=IIf(listeCourante="Année","index",IIf(nomContrôle="Index","parcours","laListeBoxSupplémentaire")) Loop While listeCourante<>nomListeSuivante strSQL=Left(strSQL,len(strSQL)-6) Me.Controls(nomListeSuivante).RowSource=strSQL Me.Controls(nomListeSuivante).Requery Me.Repaint End Function
Private Sub Form_Load() EventGroup Me, "Groupe1", "FiltrerListes" End Sub
Non testé donc non garanti...
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais creer 3 zone de liste a choix multiple 1er liste : Année 2nd liste : index 3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la 2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en dessous in formulaire tabulaire tous simple avec comme criteres les differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1 2005 561 ALLASSAC - LIMOGES BENEDICTINS 2 2005 560 ARGELES SUR MER - BANYULS SUR MER 2 2006 340 ARGELES SUR MER - CARCASSONNE 2 2006 352 ARGELES SUR MER - CERBERE 2 2006 340 ARGELES SUR MER - COLLIOURE 2
-- Voilou ! Cordialement,
Ze Titi
Bonjour HandiBasket
Tes 3 listes doivent avoir la même source à l'ouverture du formulaire, tu fais juste différer les colonnes affichées.
La procédure décrite est fortement inspirée de l'article de Raymond
http://officesystem.access.free.fr/ex_fonction_unique.htm
J'ai supposé qu'à la place du formulaire tabulaire que tu souhaites, ça soit plutôt une listebox...
Pour commencer, sélectionne tes 3 listes. Dans l'onglet Autres des propriétés, ligne Remarques, tape "Groupe1" sans les guillemets.
Ensuite, colle le code suivant en n'oubliant pas de modifier le nom de la table dans strSQL="SELECT * FROM taTable......" et le nom de la liste supplémentaire dans "nomListeSuivante=IIf..." et "listeCourante=IIf..."
Public Function EventGroup(FormObject As Form, GroupName As String, FunctionName As String) As Boolean
On Error GoTo Err_EventGroup
Dim Ctl As Control
For Each Ctl In FormObject.Controls
If Ctl.Tag = GroupName Then
Ctl.OnClick = "=" & FunctionName & "(""" & Ctl.Name & """)"
End If
Next Ctl
EventGroup = True
Err_EventGroup:
End Function
Function FiltrerListes(nomContrôle as String) as Boolean
Dim varItem, ctl as Control, strSQL as String, nomListeSuivante as String, listeCourante As String
listeCourante="Année"
nomListeSuivante=IIf(nomContrôle="Année","index",IIf(nomContôle="Index","parcours","laListeBoxSupplémentaire"))
strSQL="SELECT * FROM taTable WHERE ("
Do
Set ctl=Me.Controls(listeCourante)
For each varItem in ctl.ItemsSelected
strSQL=strSQL & listeCourante & "=" & ctl.ItemData(varItem) & " OR "
Next
strSQL=Left(strSQL,len(strSQL)-4) & ") AND ("
listeCourante=IIf(listeCourante="Année","index",IIf(nomContrôle="Index","parcours","laListeBoxSupplémentaire"))
Loop While listeCourante<>nomListeSuivante
strSQL=Left(strSQL,len(strSQL)-6)
Me.Controls(nomListeSuivante).RowSource=strSQL
Me.Controls(nomListeSuivante).Requery
Me.Repaint
End Function
Private Sub Form_Load()
EventGroup Me, "Groupe1", "FiltrerListes"
End Sub
Non testé donc non garanti...
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais
creer 3 zone de liste a choix multiple
1er liste : Année
2nd liste : index
3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce
qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la
2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en
dessous in formulaire tabulaire tous simple avec comme criteres les
differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1
2005 561 ALLASSAC - LIMOGES BENEDICTINS 2
2005 560 ARGELES SUR MER - BANYULS SUR MER 2
2006 340 ARGELES SUR MER - CARCASSONNE 2
2006 352 ARGELES SUR MER - CERBERE 2
2006 340 ARGELES SUR MER - COLLIOURE 2
Tes 3 listes doivent avoir la même source à l'ouverture du formulaire, tu fais juste différer les colonnes affichées. La procédure décrite est fortement inspirée de l'article de Raymond http://officesystem.access.free.fr/ex_fonction_unique.htm J'ai supposé qu'à la place du formulaire tabulaire que tu souhaites, ça soit plutôt une listebox...
Pour commencer, sélectionne tes 3 listes. Dans l'onglet Autres des propriétés, ligne Remarques, tape "Groupe1" sans les guillemets.
Ensuite, colle le code suivant en n'oubliant pas de modifier le nom de la table dans strSQL="SELECT * FROM taTable......" et le nom de la liste supplémentaire dans "nomListeSuivante=IIf..." et "listeCourante=IIf..."
Public Function EventGroup(FormObject As Form, GroupName As String, FunctionName As String) As Boolean On Error GoTo Err_EventGroup Dim Ctl As Control For Each Ctl In FormObject.Controls If Ctl.Tag = GroupName Then Ctl.OnClick = "=" & FunctionName & "(""" & Ctl.Name & """)" End If Next Ctl EventGroup = True Err_EventGroup: End Function
Function FiltrerListes(nomContrôle as String) as Boolean Dim varItem, ctl as Control, strSQL as String, nomListeSuivante as String, listeCourante As String listeCourante="Année" nomListeSuivante=IIf(nomContrôle="Année","index",IIf(nomContôle="Index","parcours","laListeBoxSupplémentaire")) strSQL="SELECT * FROM taTable WHERE (" Do Set ctl=Me.Controls(listeCourante) For each varItem in ctl.ItemsSelected strSQL=strSQL & listeCourante & "=" & ctl.ItemData(varItem) & " OR " Next strSQL=Left(strSQL,len(strSQL)-4) & ") AND (" listeCourante=IIf(listeCourante="Année","index",IIf(nomContrôle="Index","parcours","laListeBoxSupplémentaire")) Loop While listeCourante<>nomListeSuivante strSQL=Left(strSQL,len(strSQL)-6) Me.Controls(nomListeSuivante).RowSource=strSQL Me.Controls(nomListeSuivante).Requery Me.Repaint End Function
Private Sub Form_Load() EventGroup Me, "Groupe1", "FiltrerListes" End Sub
Non testé donc non garanti...
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais creer 3 zone de liste a choix multiple 1er liste : Année 2nd liste : index 3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la 2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en dessous in formulaire tabulaire tous simple avec comme criteres les differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1 2005 561 ALLASSAC - LIMOGES BENEDICTINS 2 2005 560 ARGELES SUR MER - BANYULS SUR MER 2 2006 340 ARGELES SUR MER - CARCASSONNE 2 2006 352 ARGELES SUR MER - CERBERE 2 2006 340 ARGELES SUR MER - COLLIOURE 2
-- Voilou ! Cordialement,
Ze Titi
ze Titi
J'ai oublié de préciser que la colonne liée de chaque liste doit être la colonne affichée...
Dans ton message <45ad53c9$0$2320$ du mardi
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais creer 3 zone de liste a choix multiple 1er liste : Année 2nd liste : index 3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la 2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en dessous in formulaire tabulaire tous simple avec comme criteres les differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1 2005 561 ALLASSAC - LIMOGES BENEDICTINS 2 2005 560 ARGELES SUR MER - BANYULS SUR MER 2 2006 340 ARGELES SUR MER - CARCASSONNE 2 2006 352 ARGELES SUR MER - CERBERE 2 2006 340 ARGELES SUR MER - COLLIOURE 2
-- Voilou ! Cordialement,
Ze Titi
J'ai oublié de préciser que la colonne liée de chaque liste doit être
la colonne affichée...
Dans ton message <45ad53c9$0$2320$426a74cc@news.free.fr> du mardi
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais
creer 3 zone de liste a choix multiple
1er liste : Année
2nd liste : index
3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce
qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la
2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en
dessous in formulaire tabulaire tous simple avec comme criteres les
differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1
2005 561 ALLASSAC - LIMOGES BENEDICTINS 2
2005 560 ARGELES SUR MER - BANYULS SUR MER 2
2006 340 ARGELES SUR MER - CARCASSONNE 2
2006 352 ARGELES SUR MER - CERBERE 2
2006 340 ARGELES SUR MER - COLLIOURE 2
J'ai oublié de préciser que la colonne liée de chaque liste doit être la colonne affichée...
Dans ton message <45ad53c9$0$2320$ du mardi
Bonsoir a tous
Ci joint le contenue d'une table (année,index,parcours) je souhaiterais creer 3 zone de liste a choix multiple 1er liste : Année 2nd liste : index 3eme liste : parcours
la personne selectionne une premiere valeur ou +sieurs dans la 1ere liste ce qui met a jour la 2nd, elle selectionne 1 ou +sieurs choix (dans la 2nd),.....
et a la fin en fonction de tous les choix selectionnés je veux creer en dessous in formulaire tabulaire tous simple avec comme criteres les differentes selection ?
suis je clair ?)
Merci à tous de votre aide & bonne année
Marc
2005 560 ALLASSAC - LIMOGES BENEDICTINS 1 2005 561 ALLASSAC - LIMOGES BENEDICTINS 2 2005 560 ARGELES SUR MER - BANYULS SUR MER 2 2006 340 ARGELES SUR MER - CARCASSONNE 2 2006 352 ARGELES SUR MER - CERBERE 2 2006 340 ARGELES SUR MER - COLLIOURE 2