Je continu de d=E9velopper vaillament ma base avec votre aide =E0 tous et
je vous en remercie. Seulement l=E0 s=E8che...
Mon formulaire bugg=E9 est calqu=E9 point par point sur celui de
caf=E9ine. (http://cafeine.developpez.com/access/tutoriel/recherchemulti
- m=E9thode que je ne vous recommande gu=E8re apr=E8s avoir vu tout ce qui
cela peut engendrer comme probl=E8me.)
Mon bug :
- J'ouvre mon formulaire
- Toute ma liste est l=E0, pas de probl=E8me
- Je coche filtre par mois sans rentrer de crit=E8res (un champ vide
ind=E9pendant est apparu)
- Et =E0 ce moment l=E0 : dans ma liste deux entr=E9es ont disparus alors
que n'ai rien filtr=E9!
- Si je d=E9coche (que je reviens =E0 la situation du formulaire lors de
son lancement), tout va bien
- Si je recoche une nouvelle fois, mes entr=E9es sont l=E0, tout va bien.
Autrement dit :
on a rien coch=E9 =E7a marche
on coche une premi=E8re fois =E7a marche pas
on d=E9coche =E7a marche
on coche une deuxi=E8me fois =E7a marche
et tout =E7a alors qu'aucun crit=E8re n'est rentr=E9 =E0 aucun moment.
J'ai v=E9rifi=E9 :
- Ces deux entr=E9es n'ont aucune diff=E9rence avec les autres, elles
n'ont aucune similitude entre elles, ce qui veut dire que ce sont des
entr=E9es banales qui sont touch=E9es
- J'ai plus ou moins constat=E9 que ce bug touchait des entr=E9es au
hasard. Cependant lorsqu'elles sont touch=E9s, elle le sont pour la vie,
(tout le temps o=F9 elle sont pr=E9sentes dans la base). En cons=E9quence
si je referme mon formulaire et que je le r=E9ouvre, ce sont toujours
les m=EAme entr=E9es qui disparaissent.
Ma question :
Serait-ce un probl=E8me d'indexiation ? Comment puis-je forcer la
relecture de la base autrement qu'avec un requery ?
Solution barbare : Est il possible de simuler un "cochage d=E9cochage"
=E0 l'ouverture du formulaire.
Merci =E0 tous si vous avez lu jusque l=E0,
Merci pour l'attention que vous me porter,
Si il y a un =E9l=E9ment qui manque dans mon explication je vous
renseignerai illico...
GDUBOIS
_______________________________________
PS : J'ai cherch=E9 pendant des lustres comment faire une recherche
multicrit=E8re de mani=E8re simple. La m=E9thode de caf=E9ine m'a sembl=E9
la plus simple... en fait non. Je vous donne ce que j'ai finalement
trouv=E9 apr=E8s des semaines de recherche.
Mettre (Comme "*" & [Forms]![MonForm][MonChamp] & "*") sans les
parenth=E8ses en tant que crit=E8re dans une requ=EAte bien =E0 part que
vous appelez comme vous voulez, d'o=F9 vous voulez, quand vous voulez.
Vous pouvez mutliplier les criti=E8res et les champs =E0 l'infini : tous
sera interd=E9pendant ou d=E9pendant ou ind=E9pendant... bref tout sera
souple.
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
pascal
Bonjour,
as tu essayer de modifier directement la requete source par rapport aux critéres ensuite tu fais un requery du controle et si tu n'as pas tout c'est qu'il ya un soucis au niveau des critéres de la requete.
Mais je ne connais pas le début donc si tu pouvais me détailler les critéres de la requete .
voila a+ pascal
wrote:
Bonjour à tous,
Je continu de développer vaillament ma base avec votre aide à tous et je vous en remercie. Seulement là sèche...
Mon formulaire buggé est calqué point par point sur celui de caféine. (http://cafeine.developpez.com/access/tutoriel/recherchemulti - méthode que je ne vous recommande guère après avoir vu tout ce qui cela peut engendrer comme problème.)
Mon bug :
- J'ouvre mon formulaire - Toute ma liste est là, pas de problème - Je coche filtre par mois sans rentrer de critères (un champ vide indépendant est apparu) - Et à ce moment là : dans ma liste deux entrées ont disparus alors que n'ai rien filtré! - Si je décoche (que je reviens à la situation du formulaire lors de son lancement), tout va bien - Si je recoche une nouvelle fois, mes entrées sont là, tout va bien.
Autrement dit :
on a rien coché ça marche on coche une première fois ça marche pas on décoche ça marche on coche une deuxième fois ça marche et tout ça alors qu'aucun critère n'est rentré à aucun moment.
J'ai vérifié :
- Ces deux entrées n'ont aucune différence avec les autres, elles n'ont aucune similitude entre elles, ce qui veut dire que ce sont des entrées banales qui sont touchées
- J'ai plus ou moins constaté que ce bug touchait des entrées au hasard. Cependant lorsqu'elles sont touchés, elle le sont pour la vie, (tout le temps où elle sont présentes dans la base). En conséquence si je referme mon formulaire et que je le réouvre, ce sont toujours les même entrées qui disparaissent.
Ma question :
Serait-ce un problème d'indexiation ? Comment puis-je forcer la relecture de la base autrement qu'avec un requery ?
Solution barbare : Est il possible de simuler un "cochage décochage" à l'ouverture du formulaire.
Merci à tous si vous avez lu jusque là, Merci pour l'attention que vous me porter,
Si il y a un élément qui manque dans mon explication je vous renseignerai illico...
GDUBOIS
_______________________________________
PS : J'ai cherché pendant des lustres comment faire une recherche multicritère de manière simple. La méthode de caféine m'a sembl é la plus simple... en fait non. Je vous donne ce que j'ai finalement trouvé après des semaines de recherche.
Mettre (Comme "*" & [Forms]![MonForm][MonChamp] & "*") sans les parenthèses en tant que critère dans une requête bien à part que vous appelez comme vous voulez, d'où vous voulez, quand vous voulez. Vous pouvez mutliplier les critières et les champs à l'infini : tous sera interdépendant ou dépendant ou indépendant... bref tout sera souple.
Bonjour,
as tu essayer de modifier directement la requete source par rapport aux
critéres ensuite tu fais un requery du controle et si tu n'as pas tout
c'est qu'il ya un soucis au niveau des critéres de la requete.
Mais je ne connais pas le début donc si tu pouvais me détailler les
critéres de la requete .
voila a+
pascal
dubois.g@gmail.com wrote:
Bonjour à tous,
Je continu de développer vaillament ma base avec votre aide à tous et
je vous en remercie. Seulement là sèche...
Mon formulaire buggé est calqué point par point sur celui de
caféine. (http://cafeine.developpez.com/access/tutoriel/recherchemulti
- méthode que je ne vous recommande guère après avoir vu tout ce qui
cela peut engendrer comme problème.)
Mon bug :
- J'ouvre mon formulaire
- Toute ma liste est là, pas de problème
- Je coche filtre par mois sans rentrer de critères (un champ vide
indépendant est apparu)
- Et à ce moment là : dans ma liste deux entrées ont disparus alors
que n'ai rien filtré!
- Si je décoche (que je reviens à la situation du formulaire lors de
son lancement), tout va bien
- Si je recoche une nouvelle fois, mes entrées sont là, tout va bien.
Autrement dit :
on a rien coché ça marche
on coche une première fois ça marche pas
on décoche ça marche
on coche une deuxième fois ça marche
et tout ça alors qu'aucun critère n'est rentré à aucun moment.
J'ai vérifié :
- Ces deux entrées n'ont aucune différence avec les autres, elles
n'ont aucune similitude entre elles, ce qui veut dire que ce sont des
entrées banales qui sont touchées
- J'ai plus ou moins constaté que ce bug touchait des entrées au
hasard. Cependant lorsqu'elles sont touchés, elle le sont pour la vie,
(tout le temps où elle sont présentes dans la base). En conséquence
si je referme mon formulaire et que je le réouvre, ce sont toujours
les même entrées qui disparaissent.
Ma question :
Serait-ce un problème d'indexiation ? Comment puis-je forcer la
relecture de la base autrement qu'avec un requery ?
Solution barbare : Est il possible de simuler un "cochage décochage"
à l'ouverture du formulaire.
Merci à tous si vous avez lu jusque là,
Merci pour l'attention que vous me porter,
Si il y a un élément qui manque dans mon explication je vous
renseignerai illico...
GDUBOIS
_______________________________________
PS : J'ai cherché pendant des lustres comment faire une recherche
multicritère de manière simple. La méthode de caféine m'a sembl é
la plus simple... en fait non. Je vous donne ce que j'ai finalement
trouvé après des semaines de recherche.
Mettre (Comme "*" & [Forms]![MonForm][MonChamp] & "*") sans les
parenthèses en tant que critère dans une requête bien à part que
vous appelez comme vous voulez, d'où vous voulez, quand vous voulez.
Vous pouvez mutliplier les critières et les champs à l'infini : tous
sera interdépendant ou dépendant ou indépendant... bref tout sera
souple.
as tu essayer de modifier directement la requete source par rapport aux critéres ensuite tu fais un requery du controle et si tu n'as pas tout c'est qu'il ya un soucis au niveau des critéres de la requete.
Mais je ne connais pas le début donc si tu pouvais me détailler les critéres de la requete .
voila a+ pascal
wrote:
Bonjour à tous,
Je continu de développer vaillament ma base avec votre aide à tous et je vous en remercie. Seulement là sèche...
Mon formulaire buggé est calqué point par point sur celui de caféine. (http://cafeine.developpez.com/access/tutoriel/recherchemulti - méthode que je ne vous recommande guère après avoir vu tout ce qui cela peut engendrer comme problème.)
Mon bug :
- J'ouvre mon formulaire - Toute ma liste est là, pas de problème - Je coche filtre par mois sans rentrer de critères (un champ vide indépendant est apparu) - Et à ce moment là : dans ma liste deux entrées ont disparus alors que n'ai rien filtré! - Si je décoche (que je reviens à la situation du formulaire lors de son lancement), tout va bien - Si je recoche une nouvelle fois, mes entrées sont là, tout va bien.
Autrement dit :
on a rien coché ça marche on coche une première fois ça marche pas on décoche ça marche on coche une deuxième fois ça marche et tout ça alors qu'aucun critère n'est rentré à aucun moment.
J'ai vérifié :
- Ces deux entrées n'ont aucune différence avec les autres, elles n'ont aucune similitude entre elles, ce qui veut dire que ce sont des entrées banales qui sont touchées
- J'ai plus ou moins constaté que ce bug touchait des entrées au hasard. Cependant lorsqu'elles sont touchés, elle le sont pour la vie, (tout le temps où elle sont présentes dans la base). En conséquence si je referme mon formulaire et que je le réouvre, ce sont toujours les même entrées qui disparaissent.
Ma question :
Serait-ce un problème d'indexiation ? Comment puis-je forcer la relecture de la base autrement qu'avec un requery ?
Solution barbare : Est il possible de simuler un "cochage décochage" à l'ouverture du formulaire.
Merci à tous si vous avez lu jusque là, Merci pour l'attention que vous me porter,
Si il y a un élément qui manque dans mon explication je vous renseignerai illico...
GDUBOIS
_______________________________________
PS : J'ai cherché pendant des lustres comment faire une recherche multicritère de manière simple. La méthode de caféine m'a sembl é la plus simple... en fait non. Je vous donne ce que j'ai finalement trouvé après des semaines de recherche.
Mettre (Comme "*" & [Forms]![MonForm][MonChamp] & "*") sans les parenthèses en tant que critère dans une requête bien à part que vous appelez comme vous voulez, d'où vous voulez, quand vous voulez. Vous pouvez mutliplier les critières et les champs à l'infini : tous sera interdépendant ou dépendant ou indépendant... bref tout sera souple.
dubois.g
Si j'ai bien compris ta suggestion, je crois que c'est exactement ce que fais mon formulaire.
De manière shématique j'ai ça :
8 case à cocher 8 champs indépendants qui contiennent mes critères Un code VBA qui contient ma requête
Le code VBA fait le test suivant pour chaque binôme case à cocher / champ :
If Me.CaseACocher Then SQL = SQL & "And maTable!maColonne LIKE '*" & Me.monChamp & "*' " End If If Me...
La requête se construit bloc par bloc en fonction de ce qui est coché. Il n'y a aucun problème sur ça.
A la fin du code VBA j'ai :
Me.lstResults.requery
Je fais donc tout bien comme tu le dis.
Ce que je trouve étonnant c'est que lorsque l'on coche une première fois, ça ne marche pas (deux lignes manquent sans aucune raison), lorsque je décoche ces deux lignes reviennent et lorsque je coche une deuxième fois cela marche.
J'en déduis donc que ce n'est pas la requête qui bug puisqu'elle est capable de filtrer correctement.
Pour le détail de mes critères les voici :
Rien n'est coché sauf un critère. C'est un peu compliqué :
La case qui est coché rend visible deux champs, le mois et l'année. En fonction de ce qui est coché dans une option box on filtre soit les entrées soit les décaissements (bref).
Tous les deux sont des combo box. Voici le code que j'ai inséré dans VBA pour faire le filtrage :
If Me.chkMoisAn Then If Me.optDate = 1 Then SQL = SQL & "And tblADP!MoisEntrée LIKE '*" & Me.cmbMois & "*' " SQL = SQL & "And tblADP!AnnéeEntrée LIKE '*" & Me.txtAnnée & "*' " ElseIf Me.optDate = 2 Then SQL = SQL & "And tblADP!MoisDécaissement LIKE '*" & Me.cmbMois2 & "*' " SQL = SQL & "And tblADP!AnnéeDécaissement LIKE '*" & Me.txtAnnée2 & "*' " Else End If End If
J'insiste sur le fait qu'au deuxième "cochage", la requête fait parfaitement son boulot.
Merci pour ton aide,
GDUBOIS
Si j'ai bien compris ta suggestion, je crois que c'est exactement ce
que fais mon formulaire.
De manière shématique j'ai ça :
8 case à cocher
8 champs indépendants qui contiennent mes critères
Un code VBA qui contient ma requête
Le code VBA fait le test suivant pour chaque binôme case à cocher /
champ :
If Me.CaseACocher Then
SQL = SQL & "And maTable!maColonne LIKE '*" & Me.monChamp & "*' "
End If
If Me...
La requête se construit bloc par bloc en fonction de ce qui est
coché. Il n'y a aucun problème sur ça.
A la fin du code VBA j'ai :
Me.lstResults.requery
Je fais donc tout bien comme tu le dis.
Ce que je trouve étonnant c'est que lorsque l'on coche une première
fois, ça ne marche pas (deux lignes manquent sans aucune raison),
lorsque je décoche ces deux lignes reviennent et lorsque je coche une
deuxième fois cela marche.
J'en déduis donc que ce n'est pas la requête qui bug puisqu'elle est
capable de filtrer correctement.
Pour le détail de mes critères les voici :
Rien n'est coché sauf un critère. C'est un peu compliqué :
La case qui est coché rend visible deux champs, le mois et l'année.
En fonction de ce qui est coché dans une option box on filtre soit les
entrées soit les décaissements (bref).
Tous les deux sont des combo box. Voici le code que j'ai inséré dans
VBA pour faire le filtrage :
If Me.chkMoisAn Then
If Me.optDate = 1 Then
SQL = SQL & "And tblADP!MoisEntrée LIKE '*" & Me.cmbMois & "*'
"
SQL = SQL & "And tblADP!AnnéeEntrée LIKE '*" & Me.txtAnnée &
"*' "
ElseIf Me.optDate = 2 Then
SQL = SQL & "And tblADP!MoisDécaissement LIKE '*" &
Me.cmbMois2 & "*' "
SQL = SQL & "And tblADP!AnnéeDécaissement LIKE '*" &
Me.txtAnnée2 & "*' "
Else
End If
End If
J'insiste sur le fait qu'au deuxième "cochage", la requête fait
parfaitement son boulot.
Si j'ai bien compris ta suggestion, je crois que c'est exactement ce que fais mon formulaire.
De manière shématique j'ai ça :
8 case à cocher 8 champs indépendants qui contiennent mes critères Un code VBA qui contient ma requête
Le code VBA fait le test suivant pour chaque binôme case à cocher / champ :
If Me.CaseACocher Then SQL = SQL & "And maTable!maColonne LIKE '*" & Me.monChamp & "*' " End If If Me...
La requête se construit bloc par bloc en fonction de ce qui est coché. Il n'y a aucun problème sur ça.
A la fin du code VBA j'ai :
Me.lstResults.requery
Je fais donc tout bien comme tu le dis.
Ce que je trouve étonnant c'est que lorsque l'on coche une première fois, ça ne marche pas (deux lignes manquent sans aucune raison), lorsque je décoche ces deux lignes reviennent et lorsque je coche une deuxième fois cela marche.
J'en déduis donc que ce n'est pas la requête qui bug puisqu'elle est capable de filtrer correctement.
Pour le détail de mes critères les voici :
Rien n'est coché sauf un critère. C'est un peu compliqué :
La case qui est coché rend visible deux champs, le mois et l'année. En fonction de ce qui est coché dans une option box on filtre soit les entrées soit les décaissements (bref).
Tous les deux sont des combo box. Voici le code que j'ai inséré dans VBA pour faire le filtrage :
If Me.chkMoisAn Then If Me.optDate = 1 Then SQL = SQL & "And tblADP!MoisEntrée LIKE '*" & Me.cmbMois & "*' " SQL = SQL & "And tblADP!AnnéeEntrée LIKE '*" & Me.txtAnnée & "*' " ElseIf Me.optDate = 2 Then SQL = SQL & "And tblADP!MoisDécaissement LIKE '*" & Me.cmbMois2 & "*' " SQL = SQL & "And tblADP!AnnéeDécaissement LIKE '*" & Me.txtAnnée2 & "*' " Else End If End If
J'insiste sur le fait qu'au deuxième "cochage", la requête fait parfaitement son boulot.