ACCESS demander un nombre de boucle?
Résolu
doogybreton
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
doogybreton Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
doogybreton Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
...je souhaiterai maintenant effectuer un formulaire de filtrage sur plusieur critère mais la le nombre de critère dois pouvoir changer a chaque fois...(si l'utilisateur veut filtrer sur 2 ou 10 critères?)
je m'explique voila j'ai une reqtout avec 118 champs de notations, (champ1, champ2, champ3...etc) ca fait bcp je c
apres je creer un formulaire qui sappel frmcritere
sur la meme ligne de mon formularie j'ai creer:
une comboBox source: cmbreqTOUT
type: liste de champs (donc ici je choisi le champs de ma requete sur lequel je souhaite filtrer)
j'ai une seconde combobox a coter appeler cmbsigne : liste valeur "=", ">", "<", "<>"
puis a coter une zone de texte txtvaleur : ou c vide et l'utilisateur entre la valeur qui lui conviendra...
donc l'utilisateur selectionne sont champs a filtrer puis selectionne le signe egale ou sup..et enfin entre la valeur sur lequel filtrer
Si maintenant mon utilisateur souhaite filtrer sur plusieurs critères. en meme temps
j'ai creer 10 autres lignes comme celle o dessus ce qui laisse la possibilite a l'utilsateur de filtrer sur 10 champs différents o max
Mais la dessus j'ai 1 souci:
1/ si l'utilisateur souhaite ne comparer que 5 critères, il faut pouvoir dire a mon code ne pas prendre encore les 5 autres box de critères ou il n'a rien saisi..comment faire ?
SINON et c la que j'attire votre attention, ce qui serait le mieux c avoir que la premiere ligne avec ma combox de liste de champs, ma combox de signe et ma zone texte de valeur...j'avais pensé a une mise en boucle..ou on demande a l'utilisateur sur combien de critère veut il filtrer si 11 : il lance 11 boucle et on pe y saisir nos 11 lignes...un truc ds le genre
est ce possible? et bien evidement comment faire?
NB mon vba reste débutant mais si on me décrit un peu je comprend c deja ca^o^
voici une image de mon formulaire pour un bref apercu du truc sans le loop
http://img153.imageshack.us/img153/1694/formulairesl1.jpg
...je souhaiterai maintenant effectuer un formulaire de filtrage sur plusieur critère mais la le nombre de critère dois pouvoir changer a chaque fois...(si l'utilisateur veut filtrer sur 2 ou 10 critères?)
je m'explique voila j'ai une reqtout avec 118 champs de notations, (champ1, champ2, champ3...etc) ca fait bcp je c
apres je creer un formulaire qui sappel frmcritere
sur la meme ligne de mon formularie j'ai creer:
une comboBox source: cmbreqTOUT
type: liste de champs (donc ici je choisi le champs de ma requete sur lequel je souhaite filtrer)
j'ai une seconde combobox a coter appeler cmbsigne : liste valeur "=", ">", "<", "<>"
puis a coter une zone de texte txtvaleur : ou c vide et l'utilisateur entre la valeur qui lui conviendra...
donc l'utilisateur selectionne sont champs a filtrer puis selectionne le signe egale ou sup..et enfin entre la valeur sur lequel filtrer
Si maintenant mon utilisateur souhaite filtrer sur plusieurs critères. en meme temps
j'ai creer 10 autres lignes comme celle o dessus ce qui laisse la possibilite a l'utilsateur de filtrer sur 10 champs différents o max
Mais la dessus j'ai 1 souci:
1/ si l'utilisateur souhaite ne comparer que 5 critères, il faut pouvoir dire a mon code ne pas prendre encore les 5 autres box de critères ou il n'a rien saisi..comment faire ?
SINON et c la que j'attire votre attention, ce qui serait le mieux c avoir que la premiere ligne avec ma combox de liste de champs, ma combox de signe et ma zone texte de valeur...j'avais pensé a une mise en boucle..ou on demande a l'utilisateur sur combien de critère veut il filtrer si 11 : il lance 11 boucle et on pe y saisir nos 11 lignes...un truc ds le genre
est ce possible? et bien evidement comment faire?
NB mon vba reste débutant mais si on me décrit un peu je comprend c deja ca^o^
voici une image de mon formulaire pour un bref apercu du truc sans le loop
http://img153.imageshack.us/img153/1694/formulairesl1.jpg
A voir également:
- ACCESS demander un nombre de boucle?
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Acer quick access ✓ - Forum PC portable
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
6 réponses
Mysql = "select * from mytable"
SQLwhere = ""
Dim i As Integer, nbcomp As Integer
--------------------------------------------
' jusque là tutto bene mais la suivante est inutile
--------------------------------------------
'nbcomp = InputBox("combien de comparaison souhaitez vous effectuer?", "COMPARAISON")
--------------------------------------------
nbcomb ==> nombre de champs presents pour filtrer (champ1 à champ10 ==> nbcomp = 10)
--------------------------------------------
for i = 1 to nbcomp
' c cette partie qui me pose souci merci!!!!!!
--------------------------------------------
'if len(champ1), c'est un raccourci pour if len(champ1) > 0 ou bien if champ1 <> ""
--------------------------------------------
if len(champ1) Then where = where & " " & myAND_ORCombo & " " & col1 " & myComparisonCombo & " '" & champ1 & "' "
if len(champ2) Then where = where & " " & myAND_ORCombo & " " & col2 " & myComparisonCombo & " '" & champ2 & "' "
--------------------------------------------
' malheureusement à cause de col1, col2 etc on ne peut pas boucler
' en tout cas j'espère que dans la bdd t'utilises quand-même des noms du genre FirstName, LastName, City etc...
' p.ex. if champ1 <> "" Then where = where & " " & "AND" & col1 " & " = " & " '" & champ1 & "' "
' myAND_ORCombo list qui contien les strings "AND", "OR", "LIKE"
' myComparisonCombo liste qui contient des strings "=", "<", ">", ...
--------------------------------------------
...
next
SQLwhere = ""
Dim i As Integer, nbcomp As Integer
--------------------------------------------
' jusque là tutto bene mais la suivante est inutile
--------------------------------------------
'nbcomp = InputBox("combien de comparaison souhaitez vous effectuer?", "COMPARAISON")
--------------------------------------------
nbcomb ==> nombre de champs presents pour filtrer (champ1 à champ10 ==> nbcomp = 10)
--------------------------------------------
for i = 1 to nbcomp
' c cette partie qui me pose souci merci!!!!!!
--------------------------------------------
'if len(champ1), c'est un raccourci pour if len(champ1) > 0 ou bien if champ1 <> ""
--------------------------------------------
if len(champ1) Then where = where & " " & myAND_ORCombo & " " & col1 " & myComparisonCombo & " '" & champ1 & "' "
if len(champ2) Then where = where & " " & myAND_ORCombo & " " & col2 " & myComparisonCombo & " '" & champ2 & "' "
--------------------------------------------
' malheureusement à cause de col1, col2 etc on ne peut pas boucler
' en tout cas j'espère que dans la bdd t'utilises quand-même des noms du genre FirstName, LastName, City etc...
' p.ex. if champ1 <> "" Then where = where & " " & "AND" & col1 " & " = " & " '" & champ1 & "' "
' myAND_ORCombo list qui contien les strings "AND", "OR", "LIKE"
' myComparisonCombo liste qui contient des strings "=", "<", ">", ...
--------------------------------------------
...
next
Bonjour,
Tu peux faire une fonction qui va construire ta requête soit en passant les paramètres en "Optionale" soit en testant tous les champs de ton formulaire ...
;o)
Polux
Tu peux faire une fonction qui va construire ta requête soit en passant les paramètres en "Optionale" soit en testant tous les champs de ton formulaire ...
;o)
Polux
vi ca je lai fais pour un formulaire de recherche de base
mais en fait la ou et le pb dans celui ci c que je ne sais pas a lavance le nombre de critère que l'utilisateur souhaite comparer ...
sur mon formulaire j'en ai fais 10 mais peut voudra il en comparer 20 donc comment faire?
mais en fait la ou et le pb dans celui ci c que je ne sais pas a lavance le nombre de critère que l'utilisateur souhaite comparer ...
sur mon formulaire j'en ai fais 10 mais peut voudra il en comparer 20 donc comment faire?
sql = "SELECT * FROM MyTable "
where = ""
for i = 1 to NumberOfCriteria
if len(champ1) Then where = where & " " & myAND_ORCombo & " " & col1 " & myComparisonCombo & " '" & champ1 & "' "
if len(champ2) Then where = where & " " & myAND_ORCombo & " " & col2 " & myComparisonCombo & " '" & champ2 & "' "
...
next
if len(where) then where = "WHERE " & mid(where, 4, len(where))
where = ""
for i = 1 to NumberOfCriteria
if len(champ1) Then where = where & " " & myAND_ORCombo & " " & col1 " & myComparisonCombo & " '" & champ1 & "' "
if len(champ2) Then where = where & " " & myAND_ORCombo & " " & col2 " & myComparisonCombo & " '" & champ2 & "' "
...
next
if len(where) then where = "WHERE " & mid(where, 4, len(where))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ouah euh pourrai tu me l'expliquer un peu sil te plait!!^^" jai un pe de mal a le suivre pour l'adapter a mon projet
Mysql = "select * from mytable" SQLwhere = "" Dim i As Integer, nbcomp As Integer nbcomp = InputBox("combien de comparaison souhaitez vous effectuer?", "COMPARAISON") for i = 1 to nbcomp ' c cette partie qui me pose souci merci!!!!!! if len(champ1) Then where = where & " " & myAND_ORCombo & " " & col1 " & myComparisonCombo & " '" & champ1 & "' " if len(champ2) Then where = where & " " & myAND_ORCombo & " " & col2 " & myComparisonCombo & " '" & champ2 & "' " ... next