Bonjour,
je rencontre un souci avec Acc 2k13.
Soit une base, avec, 2 requêtes (entre autres), et une 3ème, résultat des 2.
Un formulaire indépendant (form_saisie_année) permettant de saisir une année , via une zone de texte indépendante (texte1)
Le but du tout est d'envoyer un mail à x personnes, résultant de la requête. Mais je n'en suis pas là, juste pour le moment à des tests.
Les 2 tables :
1 table "candidat", avec sa primary (ci_candidat), et une case à cocher (inscription) entre autres
1 table "texte_candidat", avec comme clé ci_texte, et un champ 'ci_candidat', et un 'annee_texte' (un (-) candidat peut faire plusieurs textes par année)
Pour lister les candidats dont la case à cocher est true (-1) et qui n'ont aucun texte saisi pour l'annee_texte, j'ai dû passer par 3 requêtes :
La première :
Elle liste tous les candidats dont la case à cocher est cochée (candidat_inscription)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "SELECT candidat.ci_candidat, candidat.Inscription, sexe.libelle_sexe, candidat.[Nom-famille], candidat.Prénom, candidat.annee_naissance, candidat.Adresse, candidat.Téléphone, candidat.Codepostal, candidat.Ville, candidat.Pays, candidat.[E-mail], candidat.[Date inscription], candidat.Commentaire, candidat.identité FROM sexe INNER JOIN candidat ON sexe.code_sexe = candidat.code_sexe WHERE (((candidat.Inscription)=True));"
La seconde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 PARAMETERS formulaires!saisie_annee_stats!Texte1 Short; SELECT texte_candidat.code_candidat FROM texte_candidat WHERE (((texte_candidat.annee_concours) Like [Formulaires]![saisie_annee_stats]![Texte1]));
La troisième, regroupement des 2 :
Quand j'appelle cette troisième requête via le formulaire [Formulaires]![saisie_annee_stats]![Texte1], c'est OK.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT [Nom-famille] & " " & [prénom] AS Expr1, selection_inscription_vrai.[E-mail] FROM selection_inscription_vrai LEFT JOIN stats_regrouper_textes ON selection_inscription_vrai.[ci_candidat] = stats_regrouper_textes.[code_candidat] WHERE (((stats_regrouper_textes.code_candidat) Is Null));
Voilà mon problème :
Quand j'appelle via vba, cette même requête, j'ai une erreur "trop peu de paramètres. 1 attendu".
J'ai regardé, et ai trouvé un solution, mais non satisfaisante : souci avec les paramètres de la requête.
Si au lieu de mettre
je mets "2016", cela fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Like [Formulaires]![saisie_annee_stats]![Texte1]
Voià le code, avec les infos de dégugage (msgbox pour vérif), qui est la troisième requête, en fait
Merci de m'avoir lu et j'espère compris !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Dim rst As DAO.Recordset Dim strSQL As String Dim strMessageType As String Dim strTitre As String Dim strMsg As String strSQL = "SELECT [Nom-famille], " strSQL = strSQL & "[prénom], selection_inscription_vrai.[E-mail] FROM selection_inscription_vrai " strSQL = strSQL & "LEFT JOIN stats_regrouper_textes ON selection_inscription_vrai.[ci_candidat] = stats_regrouper_textes.[code_candidat] " strSQL = strSQL & "WHERE (((stats_regrouper_textes.code_candidat) Is Null));" MsgBox strSQL 'le requête est bonne à première vue Set rst = CurrentDb.OpenRecordset(strSQL) 'c ici que le paramètre du formulaire n'est pas pris en compte
A+
Partager