Bonjour.
J'ai découvert récemment cette fonction qui a changé ma façon de travailler sous Access :
http://www.developpez.net/forums/d74...e-formulaires/
Un très grand merci et bravo à JBO !
Je m'en suis servi à plusieurs reprises en créant une requête avec l'assistant graphique création de requêtes d'Access.
Ma requête comporte un table, 4 champs et demande une opération de regroupement.
Un seul critère de recherche est indiqué, il a comme origine le contrôle d'un formulaire.
Ça marche !
Mais j'ai déplacé le formulaire pour en faire un sous formulaire…
J'ai essayé tout ce que j'ai pu trouver concernant l'orthographe du code faisant référence aux sous formulaires : [] ! . Forms!Form Control. .Value, un maximum de combinaisons…
Le résultat est toujours le même : soit il m'affiche une message box qui semble indiquer qu'il ne trouve pas le contrôle en question et me demande de rentrer la valeur manuellement, soit le résultat est celui que j'ai prévu en cas d'un recordset vide (.EOF)…
Il se trouve que je débute en recordset et que je me suis juste contenté de recopier le code de DAO_GenericOpenRecordset.
Je soupçonne quand même que quand j'ai une messagebox, ce n'est pas forcément qu'il ne trouve pas le contrôle…
Je penses avoir compris que dans le code, si Eval() ne sais pas "évaluer" quelque chose, il envoi aussi une message box pour que l'utilisateur complète la chose.
Je me demande si je ne vais pas faire une réparation au fil de fer en faisant en sorte que la message box reçoive le contrôle que je vise…
Mais il doit bien y avoir une méthode pour que DAO_GenericOpenRecordset sache lire la requête dans son entier, avec prise en compte du sous-formulaire.
Je pense avoir fait le tour des erreurs de mon fait (renommer les formulaires, les champs, rcréer la requête...)
Mais il y a peut-être des subtilités des fonctions DAO_GenericOpenRecordset, Eval(), Recordset qui m'échappent, ou peut être des limites d'utilisations.
Je me dit que le problème doit se situer ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT First(TB0110_UTLSTR.UTLSTR_LGN) AS PremierDeUTLSTR_LGN, TB0110_UTLSTR.UTLSTR_MDP, TB0110_UTLSTR.UTLSTR_NM, TB0110_UTLSTR.UTLSTR_PRNM FROM TB0110_UTLSTR GROUP BY TB0110_UTLSTR.UTLSTR_MDP, TB0110_UTLSTR.UTLSTR_NM, TB0110_UTLSTR.UTLSTR_PRNM HAVING (((First(TB0110_UTLSTR.UTLSTR_LGN))=[Formulaires]![FO2100_PST]![FO2200_PASS]![LoginMaster]));
Mais je ne vois pas comment l'écrire d'une manière que je n'aurais pas encore essayé, sans succès…
Code : Sélectionner tout - Visualiser dans une fenêtre à part =[Formulaires]![FO2100_PST]![FO2200_PASS]![LoginMaster]));
Comment (si c'est possible) écrire cette partie pour que DAO_GenericOpenRecordset fasse le boulot ?
D'avance merci.
Partager