Bonjour,
Dans mon code VBA (pour un état), je cherche à modifier la valeur du paramètre utilisé dans la clause "WhERE" d'une requête enregistrée.
Ce paramètre est de type "text". (J'ai essayé avec un "CHAR", c'est pareil ...)
Pour cela j'utilise DAO et son célèbre querydef, voici le code :
Nota : "Txt_Groupe_2.Value", comme son nom l'indique est la valeur (de type texte) issue d'un Textbox, lui même rempli par la requête source de l'état donc variable au fil du formatage de l'état.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim qdf_Bloc_6 As QueryDef 'Variable pour la requête spécifique au bloc 6 Dim rst_Bloc_6 As Recordset 'Variable pour de recordset associé à la requête spécifique au bloc 6 Set qdf_Bloc_6 = oDb.QueryDefs("R_Schémas_B6") 'Affectation de la requête enregistrée à qdf_Bloc_6 qdf_Bloc_6.Parameters("Lieu").Value = " & Txt_Groupe_2.Value & " 'Modification du paramètre "Lieu" 'J'ai essayé avec une valeur fixe pour voir : qdf_Bloc_6.Parameters("Lieu").Value = "Sous-châssis partie latérale : Face A" 'J'ai essayé sans les guillemets et & : qdf_Bloc_6.Parameters("Lieu").Value = Txt_Groupe_2.Value Set rst_Bloc_6 = qdf_Bloc_6.OpenRecordset 'Traitement sur le recordset "rst_Bloc_6" '.....
Voici le code SQL de ma requête "R_Schémas_B6"
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 PARAMETERS [Lieu] Text ( 255 ); SELECT DISTINCT T_Schémas.Fichier, T_Schémas.Hauteur, T_Schémas.No_Tableau FROM T_Schémas INNER JOIN R_Opérations_Formulaire_VP ON T_Schémas.No_MOP = R_Opérations_Formulaire_VP.T_A_Opération_VP_initiale.No_MOP WHERE ((T_Schémas.No_Bloc=6) AND (T_Schémas.Info_Lieu = [Lieu]));
Le problème : Acces me dit (dans un message d'erreur) qu'il ne trouve pas la requête "R_Opérations_Formulaire_VP" (en lui ajoutant tout un tas de chiffres derrière).
- J'ai vérifié toutes les orthographes et la syntaxe.
- Les 2 requêtes fonctionnent dans l'éditeur access
- Quand j'enlève le paramètre de la requête, il n'y a plus d'erreur
- J'ai un code similaire à un autre endroit qui fonctionne, mais le paramètre est de type numérique, ce qui me fait penser que le problème vient du paramètre "Lieu" de type texte.
Quand pensez vous ?
Merci de me donner votre avis
Partager